覆盖创建DefaultWebSecurityExpressionHandler的评估上下文

时间:2014-05-23 13:11:34

标签: spring security

我目前的代码是

public class LPWebSecurityExpressionHandler extends DefaultWebSecurityExpressionHandler {


@Override
public EvaluationContext createEvaluationContext(Authentication authentication, FilterInvocation fi) {
    StandardEvaluationContext ctx = new StandardEvaluationContext();
    LPWebSecurityExpressionRoot root = new LPWebSecurityExpressionRoot(authentication, fi);
    root.setSiteServices(siteServices);
    root.setTrustResolver(trustResolver);
    root.setRoleHierarchy(roleHierarchy);
    root.setSecurityContextAccessService(securityContextAccessService);
    ctx.setRootObject(root);

    return ctx;
}

但现在,AbstractSecurityExpressionHandler中的createEvaluationContext在最新版本的spring-security-core中成为最终版本。我现在不确定如何自定义创建EvaluationContext。

1 个答案:

答案 0 :(得分:1)

解决。

我应该改写createSecurityExpressionRoot方法。真是我的傻瓜。