|
|
@ -65,19 +65,20 @@ public class ResourceUrlEncodingFilter extends OncePerRequestFilter { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public String encodeURL(String url) { |
|
|
|
public String encodeURL(String url) { |
|
|
|
String name = ResourceUrlProviderExposingInterceptor.RESOURCE_URL_PROVIDER_ATTR; |
|
|
|
ResourceUrlProvider resourceUrlProvider = getResourceUrlProvider(); |
|
|
|
ResourceUrlProvider urlProvider = (ResourceUrlProvider) this.request.getAttribute(name); |
|
|
|
if (resourceUrlProvider == null) { |
|
|
|
if (urlProvider != null) { |
|
|
|
logger.debug("Request attribute exposing ResourceUrlProvider not found."); |
|
|
|
String translatedUrl = urlProvider.getForRequestUrl(this.request, url); |
|
|
|
return super.encodeURL(url); |
|
|
|
if (translatedUrl != null) { |
|
|
|
|
|
|
|
return super.encodeURL(translatedUrl); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
String resolvedUrl = resourceUrlProvider.getForRequestUrl(this.request, url); |
|
|
|
logger.debug("Request attribute exposing ResourceUrlProvider not found under name: " + name); |
|
|
|
return (resolvedUrl != null ? super.encodeURL(resolvedUrl) : super.encodeURL(url)); |
|
|
|
} |
|
|
|
} |
|
|
|
return super.encodeURL(url); |
|
|
|
|
|
|
|
|
|
|
|
private ResourceUrlProvider getResourceUrlProvider() { |
|
|
|
|
|
|
|
String name = ResourceUrlProviderExposingInterceptor.RESOURCE_URL_PROVIDER_ATTR; |
|
|
|
|
|
|
|
return (ResourceUrlProvider) this.request.getAttribute(name); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|