我在java中使用注释来授予特定方法的权限。到目前为止,我没有办法让我的方法可以访问多个角色,单个角色可以正常使用@Secured(“ROLE_CUSTOMER”)。有没有办法做hasRole('role1','role2')?
答案 0 :(得分:34)
我也找到了问题的确切解决方案。
@PreAuthorize("hasAnyRole('ROLE_CUSTOMER','ROLE_OFFICEADMIN','ROLE_EMPLOYEE')")
工作正常!
像java代码中的魅力一样工作。
答案 1 :(得分:10)
只需:
@Secured({"ROLE1", "ROLE2", "ROLE3"})
答案 2 :(得分:7)
为了实现这一点,我经常使用这个
将其导入JSP
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
并且知道你可以使用它来处理安全性,就像在taglib
中一样<sec:authorize access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>
还有另一个这样的人不允许那些......我认为这是HasNoRole
无论如何这都有效!
答案 3 :(得分:-1)
grails“Secured”注释与spring“Secured”注释不同。 Grails采用一系列字符串。 Spring采用了一种奇怪的安全表达语言。
这样:
import org.springframework.security.access.annotation.Secured;
@Secured('hasAnyRole([\'FOO-ROLE\'])')
或:
import grails.plugins.springsecurity.Secured;
@Secured(['FOO-ROLE'])