1
0
mirror of synced 2026-08-05 17:57:15 +00:00

SEC-1887: Improve extensibility of expression-based security classes

Introduces a new SecurityExpressionOperations interface which is
implemented by SecurityExpressionRoot
This commit is contained in:
Andrei Stefan
2012-01-20 02:48:36 +02:00
committed by Luke Taylor
parent b493afa18c
commit 0f9ee81df1
6 changed files with 118 additions and 30 deletions
@@ -1,7 +1,9 @@
package org.springframework.security.web.access.expression;
import org.springframework.security.access.expression.AbstractSecurityExpressionHandler;
import org.springframework.security.access.expression.SecurityExpressionRoot;
import org.springframework.security.access.expression.SecurityExpressionOperations;
import org.springframework.security.authentication.AuthenticationTrustResolver;
import org.springframework.security.authentication.AuthenticationTrustResolverImpl;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.FilterInvocation;
@@ -11,11 +13,15 @@ import org.springframework.security.web.FilterInvocation;
* @since 3.0
*/
public class DefaultWebSecurityExpressionHandler extends AbstractSecurityExpressionHandler<FilterInvocation> {
private final AuthenticationTrustResolver trustResolver = new AuthenticationTrustResolverImpl();
@Override
protected SecurityExpressionRoot createSecurityExpressionRoot(Authentication authentication, FilterInvocation fi) {
protected SecurityExpressionOperations createSecurityExpressionRoot(Authentication authentication, FilterInvocation fi) {
WebSecurityExpressionRoot root = new WebSecurityExpressionRoot(authentication, fi);
root.setPermissionEvaluator(getPermissionEvaluator());
root.setTrustResolver(trustResolver);
root.setRoleHierarchy(getRoleHierarchy());
return root;
}
}