java - Spring security @PreAuthorize SecurityExpressionRoot 或 PermissionEvaluator

标签 java spring spring-mvc spring-security

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/

相关文章:

Java 列表对象而不是数组

java - 使用 Spring MVC 为 @RequestBody 使用泛型类型时出现 "argument type mismatch"错误

java - 如何配置 EclipseLink 2.0 和 Spring 3.0.5 以及 Tomcat 6?

Java Spring 基于 token 对用户进行身份验证

java - 如何在 Spring Boot 中创建不同的 ThreadPoolTask​​Executor?

java - 如何使用多个 Facebook 帐户登录?

java - Spring上下文初始化(java)

java - Unity3D 与 Eclipse for Android 项目集成

java - 在回收者 View 中将 Firebase 的新数据显示到顶部

Java - 连接滚动条但位置不同