自定义PermissionEvaluator不起作用

时间:2016-06-10 16:00:35

标签: java spring spring-security

我尝试编写自己的PermissionEvaluator命令。这是:

public class PermissionEvaluatorImpl implements PermissionEvaluator {
public PermissionEvaluatorImpl() {
}

@Override
public boolean hasPermission(Authentication authentication, Object targetDomainObject, Object permission) {
    final CustomUser customUser = (CustomUser) authentication.getPrincipal();
    //Some custom logic
    System.out.println("TEST");
    return false;
}

@Override
public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) {
    System.out.println("TEST");
    return false;
}
}

主要问题,我理解的是对DefaultMethodSecurityExpressionHandler说,必须使用我的。@Bean DefaultMethodSecurityExpressionHandler defaultMethodSecurityExpressionHandler(){ DefaultMethodSecurityExpressionHandler defaultMethodSecurityExpressionHandler = new DefaultMethodSecurityExpressionHandler(); defaultMethodSecurityExpressionHandler.setPermissionEvaluator(new PermissionEvaluatorImpl()); return defaultMethodSecurityExpressionHandler; } 。我尝试过很多方法:

@PreAuthorize

尝试自动装配它(因为它注释了@Component,我可以在所有初始化后更改它的字段),但它仍然无法正常工作。 我还试图创建我的PermissionEvaluator @Component,然后在DefaultMethodSecurityExpressionHandler的字段中设置它。这种方式是一样的(没有用)。 我还想,我把_post_put_hook()放在了不正确的位置,所以我用这个注释标记了所有图层(Controller,Service,DAO)。仍然没有工作

0 个答案:

没有答案