Do not include URL hash in resource paths

When getting the lookup path of a resource, both query params and hashes
should be removed from the request path.

This commit fixes the public path resolution for paths like
`/resources/main.svg#icon-hamburgermenu`.

Issue: SPR-14928
This commit is contained in:
Brian Clozel
2016-12-12 15:14:50 +01:00
parent 66e6b35e9f
commit 933f1501e8
4 changed files with 34 additions and 10 deletions

View File

@@ -73,7 +73,7 @@ public class ResourceUrlProviderTests {
}
@Test // SPR-13374
public void getStaticResourceUrlRequestWithRequestParams() {
public void getStaticResourceUrlRequestWithQueryOrHash() {
MockHttpServletRequest request = new MockHttpServletRequest();
request.setContextPath("/");
request.setRequestURI("/");
@@ -81,6 +81,10 @@ public class ResourceUrlProviderTests {
String url = "/resources/foo.css?foo=bar&url=http://example.org";
String resolvedUrl = this.urlProvider.getForRequestUrl(request, url);
assertEquals("/resources/foo.css?foo=bar&url=http://example.org", resolvedUrl);
url = "/resources/foo.css#hash";
resolvedUrl = this.urlProvider.getForRequestUrl(request, url);
assertEquals("/resources/foo.css#hash", resolvedUrl);
}
@Test