如何使用Spring Security注释方法,以便调用者需要拥有一个角色列表?

San*_*alp 13 spring spring-security

我在java中使用注释来授予特定方法的权限.到目前为止,我没有办法让我的方法可以访问多个角色,单个角色可以正常使用@Secured("ROLE_CUSTOMER").有没有办法做hasRole('role1','role2')?

San*_*alp 35

我也找到了问题的确切解决方案.

@PreAuthorize("hasAnyRole('ROLE_CUSTOMER','ROLE_OFFICEADMIN','ROLE_EMPLOYEE')") 
Run Code Online (Sandbox Code Playgroud)

工作良好 !
像java代码中的魅力一样工作.


Sim*_*one 10

只是:

@Secured({"ROLE1", "ROLE2", "ROLE3"})
Run Code Online (Sandbox Code Playgroud)

  • 只是提一下,这是在这 3 个角色之间作为 OR 而非 AND 工作的。 (2认同)

Cri*_*tes 7

为了实现这一点,我经常使用它

将其导入您的JSP

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
Run Code Online (Sandbox Code Playgroud)

并且知道你可以使用它来处理安全性,就像在taglib中一样

<sec:authorize access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>
Run Code Online (Sandbox Code Playgroud)

还有另外一个这样的人不允许那些...我认为它是HasNoRole

无论如何这是有效的!