Spring 安全@PreAuthorize SecurityExpressionRoot 或 PermissionEvaluator
Spring security @PreAuthorize SecurityExpressionRoot or PermissionEvaluator
Spring Security @PreAuthorize
接受了很多表达式,但是它如何决定表达式中方法的class,例如
@PreAuthorize("hasRole()")
来自 SecurityExpressionRoot
,@PreAuthorize("hasPermission()")
来自 PermissionEvaluator
class。它如何决定使用哪个 class 实例?
我不是很熟悉Spring AOP 所以不能深入挖掘。
hasPermission
表达式也根据 SecurityExpressionRoot
求值,但后者委托给 PermissionEvaluator
。如果你 have a look at the SecurityExpressionRoot
source.
你可以很容易地看到这一点
默认情况下,权限表达式是 automatically denied,但设置不同的实例可以控制 hasPermission
表达式的行为方式。
Spring Security @PreAuthorize
接受了很多表达式,但是它如何决定表达式中方法的class,例如
@PreAuthorize("hasRole()")
来自 SecurityExpressionRoot
,@PreAuthorize("hasPermission()")
来自 PermissionEvaluator
class。它如何决定使用哪个 class 实例?
我不是很熟悉Spring AOP 所以不能深入挖掘。
hasPermission
表达式也根据 SecurityExpressionRoot
求值,但后者委托给 PermissionEvaluator
。如果你 have a look at the SecurityExpressionRoot
source.
默认情况下,权限表达式是 automatically denied,但设置不同的实例可以控制 hasPermission
表达式的行为方式。