spring - 在 Spring Security 中,@Secured 注释中是否允许多个角色,条件为 'or'

标签 spring spring-mvc spring-security

我在我的项目中使用 spring 和 spring security 4。 我必须使用 ROLE_USER 或 ROLE_TIMER_TASK 调用我的 dao 方法。

目前我正在使用这个注解 -

 @Secured({"ROLE_USER", "ROLE_TIMER_TASK"})

这个@Secured 注释只允许那些同时拥有这两个角色的用户,但我想由拥有任何一个角色的用户调用这个方法。

如果用户具有此角色中的任何一个角色并调用此方法,是否有可能?

最佳答案

对于,请改用@PreAuthorize注解:

@PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_TIMER_TASK')")

在 Spring Security 版本 4 中,可以省略 ROLE_ 前缀:

@PreAuthorize("hasRole('USER') or hasRole('TIMER_TASK')")

确保您在安全配置中启用了前注和后注。

关于spring - 在 Spring Security 中,@Secured 注释中是否允许多个角色,条件为 'or',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36892152/

相关文章:

java - Spring MVC 处理程序拦截器不运行

java - Spring Security 获取后访问被拒绝 403

spring - 使用 Junit 进行测试时,JPA EntityManager 值不会保留在数据库中

java - 不兼容的类型。找到 : 'org.springframework.beans.factory.annotation.Value' , 需要: 'long'

spring-mvc - 我可以使用 spring-boot-starter-tomcat 但不使用 spring-boot-starter-web 来提供静态内容吗?

java - 防止 Rest API 调用中对象中的 boolean 值出现垃圾值

java - spring mvc 中预加载对象的 application_start 事件?

java - QueryDsl - 如何使用排序和分组表创建内部联接

java - 删除 Spring 安全角色

grails - Grails Spring Security:如何允许密码为空?