mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-06-26 22:02:41 +00:00
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 javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import org.springframework.expression.EvaluationContext;
|
import org.springframework.expression.EvaluationContext;
|
||||||
|
import org.springframework.expression.EvaluationException;
|
||||||
import org.springframework.expression.Expression;
|
import org.springframework.expression.Expression;
|
||||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||||
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||||
import org.springframework.security.access.expression.ExpressionUtils;
|
|
||||||
import org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint;
|
import org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A RequestMatcher implementation which uses a SpEL expression
|
* A RequestMatcher implementation which uses a SpEL expression
|
||||||
*
|
*
|
||||||
* <p>With the default EvalutationContext ({@link ELRequestMatcherContext}) you can use
|
* <p>With the default EvalutationContext ({@link ELRequestMatcherContext}) you can use
|
||||||
* <code>hasIpAdress()</code> and <code>hasHeader()</code></p>
|
* <code>hasIpAdress()</code> and <code>hasHeader()</code></p>
|
||||||
*
|
*
|
||||||
* <p>See {@link DelegatingAuthenticationEntryPoint} for a example configuration.</p>
|
* <p>See {@link DelegatingAuthenticationEntryPoint} for a example configuration.</p>
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @author Mike Wiesner
|
* @author Mike Wiesner
|
||||||
* @since 3.0.2
|
* @since 3.0.2
|
||||||
* @version $Id:$
|
|
||||||
*/
|
*/
|
||||||
public class ELRequestMatcher implements RequestMatcher {
|
public class ELRequestMatcher implements RequestMatcher {
|
||||||
|
|
||||||
@ -49,16 +48,23 @@ public class ELRequestMatcher implements RequestMatcher {
|
|||||||
|
|
||||||
public boolean matches(HttpServletRequest request) {
|
public boolean matches(HttpServletRequest request) {
|
||||||
EvaluationContext context = createELContext(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
|
* 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
|
* @return EL root context which is used to evaluate the expression
|
||||||
*/
|
*/
|
||||||
public EvaluationContext createELContext(HttpServletRequest request) {
|
public EvaluationContext createELContext(HttpServletRequest request) {
|
||||||
return new StandardEvaluationContext(new ELRequestMatcherContext(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;
|
this.request = request;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public boolean hasIpAddress(String ipAddress) {
|
public boolean hasIpAddress(String ipAddress) {
|
||||||
return (new IpAddressMatcher(ipAddress).matches(request));
|
return (new IpAddressMatcher(ipAddress).matches(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public boolean hasHeader(String headerName, String value) {
|
public boolean hasHeader(String headerName, String value) {
|
||||||
String header = request.getHeader(headerName);
|
String header = request.getHeader(headerName);
|
||||||
if (StringUtils.hasText(header) == false) {
|
if (StringUtils.hasText(header) == false) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (header.contains(value)) {
|
if (header.contains(value)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user