Remove unnecessary @SuppressWarnings and inline dependency from ELRequestMatcher (util package) to core ExpressionUtils.
This commit is contained in:
parent
dbee91002e
commit
d30e31d816
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue