Pārlūkot izejas kodu

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 gadi atpakaļ
vecāks
revīzija
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 org.springframework.security.ConfigAttributeDefinition;
 
 
+import java.util.List;
+import java.util.Vector;
+
 
 
 /**
 /**
  * Abstract implementation of <Code>FilterInvocationDefinitionSource</code>.
  * Abstract implementation of <Code>FilterInvocationDefinitionSource</code>.
@@ -26,6 +29,10 @@ import org.springframework.security.ConfigAttributeDefinition;
  */
  */
 public abstract class AbstractFilterInvocationDefinitionSource implements FilterInvocationDefinitionSource {
 public abstract class AbstractFilterInvocationDefinitionSource implements FilterInvocationDefinitionSource {
 
 
+    protected List requestMap = new Vector();
+
+    private boolean convertUrlToLowercaseBeforeComparison = false;
+
     //~ Methods ========================================================================================================
     //~ Methods ========================================================================================================
 
 
     public ConfigAttributeDefinition getAttributes(Object object)
     public ConfigAttributeDefinition getAttributes(Object object)
@@ -58,4 +65,20 @@ public abstract class AbstractFilterInvocationDefinitionSource implements Filter
     public boolean supports(Class clazz) {
     public boolean supports(Class clazz) {
         return FilterInvocation.class.isAssignableFrom(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);
     private static final Log logger = LogFactory.getLog(PathBasedFilterInvocationDefinitionMap.class);
 
 
-    //~ Instance fields ================================================================================================
-
-    private List requestMap = new Vector();
     private PathMatcher pathMatcher = new AntPathMatcher();
     private PathMatcher pathMatcher = new AntPathMatcher();
-    private boolean convertUrlToLowercaseBeforeComparison = false;
 
 
     //~ Methods ========================================================================================================
     //~ Methods ========================================================================================================
 
 
     public void addSecureUrl(String antPath, ConfigAttributeDefinition attr) {
     public void addSecureUrl(String antPath, ConfigAttributeDefinition attr) {
         // SEC-501: If using lower case comparison, we should convert the paths to lower case
         // 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.
         // as any upper case characters included by mistake will prevent the URL from ever being matched.
-        if (convertUrlToLowercaseBeforeComparison) {
+        if (isConvertUrlToLowercaseBeforeComparison()) {
             antPath = antPath.toLowerCase();
             antPath = antPath.toLowerCase();
         }
         }
 
 
-        requestMap.add(new EntryHolder(antPath, attr));
+        getRequestMap().add(new EntryHolder(antPath, attr));
 
 
         if (logger.isDebugEnabled()) {
         if (logger.isDebugEnabled()) {
             logger.debug("Added Ant path: " + antPath + "; attributes: " + attr);
             logger.debug("Added Ant path: " + antPath + "; attributes: " + attr);
@@ -73,7 +69,7 @@ public class PathBasedFilterInvocationDefinitionMap extends AbstractFilterInvoca
 
 
     public Iterator getConfigAttributeDefinitions() {
     public Iterator getConfigAttributeDefinitions() {
         Set set = new HashSet();
         Set set = new HashSet();
-        Iterator iter = requestMap.iterator();
+        Iterator iter = getRequestMap().iterator();
 
 
         while (iter.hasNext()) {
         while (iter.hasNext()) {
             EntryHolder entryHolder = (EntryHolder) iter.next();
             EntryHolder entryHolder = (EntryHolder) iter.next();
@@ -83,14 +79,6 @@ public class PathBasedFilterInvocationDefinitionMap extends AbstractFilterInvoca
         return set.iterator();
         return set.iterator();
     }
     }
 
 
-    public int getMapSize() {
-        return this.requestMap.size();
-    }
-
-    public boolean isConvertUrlToLowercaseBeforeComparison() {
-        return convertUrlToLowercaseBeforeComparison;
-    }
-
     public ConfigAttributeDefinition lookupAttributes(String url) {
     public ConfigAttributeDefinition lookupAttributes(String url) {
         // Strip anything after a question mark symbol, as per SEC-161. See also SEC-321
         // Strip anything after a question mark symbol, as per SEC-161. See also SEC-321
         int firstQuestionMarkIndex = url.indexOf("?");
         int firstQuestionMarkIndex = url.indexOf("?");
@@ -127,14 +115,6 @@ public class PathBasedFilterInvocationDefinitionMap extends AbstractFilterInvoca
         return null;
         return null;
     }
     }
 
 
-    public void setConvertUrlToLowercaseBeforeComparison(boolean convertUrlToLowercaseBeforeComparison) {
-        this.convertUrlToLowercaseBeforeComparison = convertUrlToLowercaseBeforeComparison;
-    }
-
-    List getRequestMap() {
-        return requestMap;
-    }    
-
     //~ Inner Classes ==================================================================================================
     //~ Inner Classes ==================================================================================================
 
 
     protected class EntryHolder {
     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);
     private static final Log logger = LogFactory.getLog(RegExpBasedFilterInvocationDefinitionMap.class);
 
 
-    //~ Instance fields ================================================================================================
-
-    private List requestMap = new Vector();
-    private boolean convertUrlToLowercaseBeforeComparison = false;
-
     //~ Methods ========================================================================================================
     //~ Methods ========================================================================================================
 
 
     public void addSecureUrl(String regExp, ConfigAttributeDefinition attr) {
     public void addSecureUrl(String regExp, ConfigAttributeDefinition attr) {
         Pattern pattern = Pattern.compile(regExp);
         Pattern pattern = Pattern.compile(regExp);
 
 
-        requestMap.add(new EntryHolder(pattern, attr));
+        getRequestMap().add(new EntryHolder(pattern, attr));
 
 
         if (logger.isDebugEnabled()) {
         if (logger.isDebugEnabled()) {
             logger.debug("Added regular expression: " + regExp + "; attributes: " + attr);
             logger.debug("Added regular expression: " + regExp + "; attributes: " + attr);
@@ -65,7 +60,7 @@ public class RegExpBasedFilterInvocationDefinitionMap extends AbstractFilterInvo
 
 
     public Iterator getConfigAttributeDefinitions() {
     public Iterator getConfigAttributeDefinitions() {
         Set set = new HashSet();
         Set set = new HashSet();
-        Iterator iter = requestMap.iterator();
+        Iterator iter = getRequestMap().iterator();
 
 
         while (iter.hasNext()) {
         while (iter.hasNext()) {
             EntryHolder entryHolder = (EntryHolder) iter.next();
             EntryHolder entryHolder = (EntryHolder) iter.next();
@@ -75,16 +70,8 @@ public class RegExpBasedFilterInvocationDefinitionMap extends AbstractFilterInvo
         return set.iterator();
         return set.iterator();
     }
     }
 
 
-    public int getMapSize() {
-        return this.requestMap.size();
-    }
-
-    public boolean isConvertUrlToLowercaseBeforeComparison() {
-        return convertUrlToLowercaseBeforeComparison;
-    }
-
     public ConfigAttributeDefinition lookupAttributes(String url) {
     public ConfigAttributeDefinition lookupAttributes(String url) {
-        Iterator iter = requestMap.iterator();
+        Iterator iter = getRequestMap().iterator();
 
 
         if (isConvertUrlToLowercaseBeforeComparison()) {
         if (isConvertUrlToLowercaseBeforeComparison()) {
             url = url.toLowerCase();
             url = url.toLowerCase();
@@ -114,14 +101,6 @@ public class RegExpBasedFilterInvocationDefinitionMap extends AbstractFilterInvo
         return null;
         return null;
     }
     }
 
 
-    public void setConvertUrlToLowercaseBeforeComparison(boolean convertUrlToLowercaseBeforeComparison) {
-        this.convertUrlToLowercaseBeforeComparison = convertUrlToLowercaseBeforeComparison;
-    }
-
-    List getRequestMap() {
-        return requestMap;
-    }
-
     //~ Inner Classes ==================================================================================================
     //~ Inner Classes ==================================================================================================
 
 
     protected class EntryHolder {
     protected class EntryHolder {