瀏覽代碼

Remove unnecessary @SuppressWarnings and inline dependency from ELRequestMatcher (util package) to core ExpressionUtils.

Luke Taylor 15 年之前
父節點
當前提交
d30e31d816

+ 16 - 10
web/src/main/java/org/springframework/security/web/util/ELRequestMatcher.java

@@ -19,24 +19,23 @@ package org.springframework.security.web.util;
 import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.expression.EvaluationContext;
+import org.springframework.expression.EvaluationException;
 import org.springframework.expression.Expression;
 import org.springframework.expression.spel.standard.SpelExpressionParser;
 import org.springframework.expression.spel.support.StandardEvaluationContext;
-import org.springframework.security.access.expression.ExpressionUtils;
 import org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint;
 
 /**
  * A RequestMatcher implementation which uses a SpEL expression
- * 
- * <p>With the default EvalutationContext ({@link ELRequestMatcherContext}) you can use 
- * <code>hasIpAdress()</code> and <code>hasHeader()</code></p> 
- *   
+ *
+ * <p>With the default EvalutationContext ({@link ELRequestMatcherContext}) you can use
+ * <code>hasIpAdress()</code> and <code>hasHeader()</code></p>
+ *
  * <p>See {@link DelegatingAuthenticationEntryPoint} for a example configuration.</p>
- * 
- * 
+ *
+ *
  * @author Mike Wiesner
  * @since 3.0.2
- * @version $Id:$
  */
 public class ELRequestMatcher implements RequestMatcher {
 
@@ -49,16 +48,23 @@ public class ELRequestMatcher implements RequestMatcher {
 
     public boolean matches(HttpServletRequest request) {
         EvaluationContext context = createELContext(request);
-        return ExpressionUtils.evaluateAsBoolean(expression, context);
+        return evaluateAsBoolean(expression, context);
     }
 
     /**
      * Subclasses can override this methode if they want to use a different EL root context
-     * 
+     *
      * @return EL root context which is used to evaluate the expression
      */
     public EvaluationContext createELContext(HttpServletRequest request) {
         return new StandardEvaluationContext(new ELRequestMatcherContext(request));
     }
 
+    private boolean evaluateAsBoolean(Expression expr, EvaluationContext ctx) {
+        try {
+            return ((Boolean) expr.getValue(ctx, Boolean.class)).booleanValue();
+        } catch (EvaluationException e) {
+            throw new IllegalArgumentException("Failed to evaluate expression '" + expr.getExpressionString() + "'", e);
+        }
+    }
 }

+ 4 - 6
web/src/main/java/org/springframework/security/web/util/ELRequestMatcherContext.java

@@ -28,23 +28,21 @@ class ELRequestMatcherContext {
         this.request = request;
     }
 
-    @SuppressWarnings("unused")
     public boolean hasIpAddress(String ipAddress) {
         return (new IpAddressMatcher(ipAddress).matches(request));
     }
-    
-    @SuppressWarnings("unused")
+
     public boolean hasHeader(String headerName, String value) {
         String header = request.getHeader(headerName);
         if (StringUtils.hasText(header) == false) {
             return false;
         }
-        
+
         if (header.contains(value)) {
             return true;
         }
-        
+
         return false;
     }
 
-}
+}