Spring Security @PreAuthorize
接受了很多表达式,但是它如何决定表达式中方法的类,例如
@PreAuthorize("hasRole()")
来自 SecurityExpressionRoot
和 @PreAuthorize("hasPermission()")
来自 PermissionEvaluator
类。它如何决定使用哪个类实例?
我对 Spring AOP 不是很熟悉,所以无法深入研究。
最佳答案
hasPermission
表达式也根据 SecurityExpressionRoot
进行评估,但后者委托(delegate)给 PermissionEvaluator
。如果你have a look at the SecurityExpressionRoot
source,你可以很容易地看到这一点.
默认情况下,权限表达式为 automatically denied ,但设置不同的实例控制 hasPermission
表达式的行为方式。
关于java - Spring security @PreAuthorize SecurityExpressionRoot 或 PermissionEvaluator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27752873/