Browse Source

Avoid pattern misdetection in Tomcat "war:" URL separator

Issue: SPR-15332
pull/1361/head
Juergen Hoeller 9 years ago
parent
commit
012c56a1f0
  1. 7
      spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java

7
spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java

@ -284,9 +284,10 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol @@ -284,9 +284,10 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol
}
}
else {
// Only look for a pattern after a prefix here
// (to not get fooled by a pattern symbol in a strange prefix).
int prefixEnd = locationPattern.indexOf(":") + 1;
// Generally only look for a pattern after a prefix here,
// and on Tomcat only after the "*/" separator for its "war:" protocol.
int prefixEnd = (locationPattern.startsWith("war:") ? locationPattern.indexOf("*/") + 1 :
locationPattern.indexOf(":") + 1);
if (getPathMatcher().isPattern(locationPattern.substring(prefixEnd))) {
// a file pattern
return findPathMatchingResources(locationPattern);

Loading…
Cancel
Save