浏览代码

SEC-1636: Add optimizations for universal match cases in AntUrlPathMatcher (using "/**" and "**" equality checks on the path).

Luke Taylor 14 年之前
父节点
当前提交
bb3a973fcb
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      web/src/main/java/org/springframework/security/web/util/AntUrlPathMatcher.java

+ 9 - 0
web/src/main/java/org/springframework/security/web/util/AntUrlPathMatcher.java

@@ -5,6 +5,12 @@ import org.springframework.util.AntPathMatcher;
 
 /**
  * Ant path strategy for URL matching.
+ * <p>
+ * If the path consists of the pattern {@code /**} or {@code **}, it is treated as a universal
+ * match, which wil match any URL.
+ * <p>
+ * For all other cases, Spring's {@code AntPathMatcher} is used to perform the check for a match. See the Spring
+ * documentation for this class for more information on the syntax details.
  *
  * @author Luke Taylor
  */
@@ -33,6 +39,9 @@ public class AntUrlPathMatcher implements UrlMatcher {
     }
 
     public boolean pathMatchesUrl(Object path, String url) {
+        if ("/**".equals(path) || "**".equals(path)) {
+            return true;
+        }
         return pathMatcher.match((String)path, url);
     }