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/

10-08 20:45