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

This commit is contained in:
Luke Taylor 2010-02-14 23:29:27 +00:00
parent dbee91002e
commit d30e31d816
2 changed files with 20 additions and 16 deletions

View File

@ -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);
}
}
}

View File

@ -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;
}
}
}