Allow file locations for resource handling
Prior to this change, location checks for serving resources would append `/` to the location path it didn't already have one. This commit makes sure not to append a `/` if the provided location is actually a file. Issue: SPR-12747
This commit is contained in:
@@ -179,7 +179,8 @@ public class PathResourceResolver extends AbstractResourceResolver {
|
||||
resourcePath = resource.getURL().getPath();
|
||||
locationPath = StringUtils.cleanPath(location.getURL().getPath());
|
||||
}
|
||||
locationPath = (locationPath.endsWith("/") || locationPath.isEmpty() ? locationPath : locationPath + "/");
|
||||
locationPath = (StringUtils.getFilenameExtension(locationPath) != null
|
||||
|| locationPath.endsWith("/") || locationPath.isEmpty() ? locationPath : locationPath + "/");
|
||||
if (!resourcePath.startsWith(locationPath)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -117,4 +117,11 @@ public class PathResourceResolverTests {
|
||||
assertNotNull(this.resolver.resolveResource(null, "main.css", Arrays.asList(location), null));
|
||||
}
|
||||
|
||||
// SPR-12747
|
||||
@Test
|
||||
public void checkFileLocation() throws Exception {
|
||||
Resource resource = new ClassPathResource("test/main.css", PathResourceResolver.class);
|
||||
assertTrue(this.resolver.checkResource(resource, resource));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user