2
0
Эх сурвалжийг харах

Pulled methods and fields up into AbstractFilterInvocationDefinitionSource to make it easier to query the map size etc, regardless of the specific type.

Luke Taylor 18 жил өмнө
parent
commit
4f3bbb52f6

+ 23 - 0
core/src/main/java/org/springframework/security/intercept/web/AbstractFilterInvocationDefinitionSource.java

@@ -17,6 +17,9 @@ package org.springframework.security.intercept.web;
 
 import org.springframework.security.ConfigAttributeDefinition;
 
+import java.util.List;
+import java.util.Vector;
+
 
 /**
  * Abstract implementation of <Code>FilterInvocationDefinitionSource</code>.
@@ -26,6 +29,10 @@ import org.springframework.security.ConfigAttributeDefinition;
  */
 public abstract class AbstractFilterInvocationDefinitionSource implements FilterInvocationDefinitionSource {
 
+    protected List requestMap = new Vector();
+
+    private boolean convertUrlToLowercaseBeforeComparison = false;
+
     //~ Methods ========================================================================================================
 
     public ConfigAttributeDefinition getAttributes(Object object)
@@ -58,4 +65,20 @@ public abstract class AbstractFilterInvocationDefinitionSource implements Filter
     public boolean supports(Class clazz) {
         return FilterInvocation.class.isAssignableFrom(clazz);
     }
+
+    public int getMapSize() {
+        return this.requestMap.size();
+    }
+
+    public boolean isConvertUrlToLowercaseBeforeComparison() {
+        return convertUrlToLowercaseBeforeComparison;
+    }
+
+    public void setConvertUrlToLowercaseBeforeComparison(boolean convertUrlToLowercaseBeforeComparison) {
+        this.convertUrlToLowercaseBeforeComparison = convertUrlToLowercaseBeforeComparison;
+    }
+
+    List getRequestMap() {
+        return requestMap;
+    }
 }

+ 3 - 23
core/src/main/java/org/springframework/security/intercept/web/PathBasedFilterInvocationDefinitionMap.java

@@ -49,22 +49,18 @@ public class PathBasedFilterInvocationDefinitionMap extends AbstractFilterInvoca
 
     private static final Log logger = LogFactory.getLog(PathBasedFilterInvocationDefinitionMap.class);
 
-    //~ Instance fields ================================================================================================
-
-    private List requestMap = new Vector();
     private PathMatcher pathMatcher = new AntPathMatcher();
-    private boolean convertUrlToLowercaseBeforeComparison = false;
 
     //~ Methods ========================================================================================================
 
     public void addSecureUrl(String antPath, ConfigAttributeDefinition attr) {
         // SEC-501: If using lower case comparison, we should convert the paths to lower case
         // as any upper case characters included by mistake will prevent the URL from ever being matched.
-        if (convertUrlToLowercaseBeforeComparison) {
+        if (isConvertUrlToLowercaseBeforeComparison()) {
             antPath = antPath.toLowerCase();
         }
 
-        requestMap.add(new EntryHolder(antPath, attr));
+        getRequestMap().add(new EntryHolder(antPath, attr));
 
         if (logger.isDebugEnabled()) {
             logger.debug("Added Ant path: " + antPath + "; attributes: " + attr);
@@ -73,7 +69,7 @@ public class PathBasedFilterInvocationDefinitionMap extends AbstractFilterInvoca
 
     public Iterator getConfigAttributeDefinitions() {
         Set set = new HashSet();
-        Iterator iter = requestMap.iterator();
+        Iterator iter = getRequestMap().iterator();
 
         while (iter.hasNext()) {
             EntryHolder entryHolder = (EntryHolder) iter.next();
@@ -83,14 +79,6 @@ public class PathBasedFilterInvocationDefinitionMap extends AbstractFilterInvoca
         return set.iterator();
     }
 
-    public int getMapSize() {
-        return this.requestMap.size();
-    }
-
-    public boolean isConvertUrlToLowercaseBeforeComparison() {
-        return convertUrlToLowercaseBeforeComparison;
-    }
-
     public ConfigAttributeDefinition lookupAttributes(String url) {
         // Strip anything after a question mark symbol, as per SEC-161. See also SEC-321
         int firstQuestionMarkIndex = url.indexOf("?");
@@ -127,14 +115,6 @@ public class PathBasedFilterInvocationDefinitionMap extends AbstractFilterInvoca
         return null;
     }
 
-    public void setConvertUrlToLowercaseBeforeComparison(boolean convertUrlToLowercaseBeforeComparison) {
-        this.convertUrlToLowercaseBeforeComparison = convertUrlToLowercaseBeforeComparison;
-    }
-
-    List getRequestMap() {
-        return requestMap;
-    }    
-
     //~ Inner Classes ==================================================================================================
 
     protected class EntryHolder {

+ 3 - 24
core/src/main/java/org/springframework/security/intercept/web/RegExpBasedFilterInvocationDefinitionMap.java

@@ -46,17 +46,12 @@ public class RegExpBasedFilterInvocationDefinitionMap extends AbstractFilterInvo
 
     private static final Log logger = LogFactory.getLog(RegExpBasedFilterInvocationDefinitionMap.class);
 
-    //~ Instance fields ================================================================================================
-
-    private List requestMap = new Vector();
-    private boolean convertUrlToLowercaseBeforeComparison = false;
-
     //~ Methods ========================================================================================================
 
     public void addSecureUrl(String regExp, ConfigAttributeDefinition attr) {
         Pattern pattern = Pattern.compile(regExp);
 
-        requestMap.add(new EntryHolder(pattern, attr));
+        getRequestMap().add(new EntryHolder(pattern, attr));
 
         if (logger.isDebugEnabled()) {
             logger.debug("Added regular expression: " + regExp + "; attributes: " + attr);
@@ -65,7 +60,7 @@ public class RegExpBasedFilterInvocationDefinitionMap extends AbstractFilterInvo
 
     public Iterator getConfigAttributeDefinitions() {
         Set set = new HashSet();
-        Iterator iter = requestMap.iterator();
+        Iterator iter = getRequestMap().iterator();
 
         while (iter.hasNext()) {
             EntryHolder entryHolder = (EntryHolder) iter.next();
@@ -75,16 +70,8 @@ public class RegExpBasedFilterInvocationDefinitionMap extends AbstractFilterInvo
         return set.iterator();
     }
 
-    public int getMapSize() {
-        return this.requestMap.size();
-    }
-
-    public boolean isConvertUrlToLowercaseBeforeComparison() {
-        return convertUrlToLowercaseBeforeComparison;
-    }
-
     public ConfigAttributeDefinition lookupAttributes(String url) {
-        Iterator iter = requestMap.iterator();
+        Iterator iter = getRequestMap().iterator();
 
         if (isConvertUrlToLowercaseBeforeComparison()) {
             url = url.toLowerCase();
@@ -114,14 +101,6 @@ public class RegExpBasedFilterInvocationDefinitionMap extends AbstractFilterInvo
         return null;
     }
 
-    public void setConvertUrlToLowercaseBeforeComparison(boolean convertUrlToLowercaseBeforeComparison) {
-        this.convertUrlToLowercaseBeforeComparison = convertUrlToLowercaseBeforeComparison;
-    }
-
-    List getRequestMap() {
-        return requestMap;
-    }
-
     //~ Inner Classes ==================================================================================================
 
     protected class EntryHolder {