Spring Security @PreAuthorize
接受很多表达式,但是它如何确定表达式中方法的类,例如@PreAuthorize("hasRole()")
来自SecurityExpressionRoot
,@PreAuthorize("hasPermission()")
来自PermissionEvaluator
类。它如何决定使用哪个类实例?
我对Spring AOP不太熟悉,因此无法大量研究。
最佳答案
hasPermission
表达式也针对SecurityExpressionRoot
求值,但后者将委托给PermissionEvaluator
。如果您have a look at the SecurityExpressionRoot
source,您可以轻松地看到这一点。
默认情况下,权限表达式为automatically denied,但是设置不同的实例可以控制hasPermission
表达式的行为。
关于java - Spring 安全性@PreAuthorize SecurityExpressionRoot或PermissionEvaluator,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27752873/