【发布时间】:2017-05-18 02:39:24
【问题描述】:
我已经设置了'ROLE_ADMIN', 'ROLE_SUPERUSER', 'ROLE_USER' 角色并且它们运行良好。现在,我需要授予 3 个特定用户访问某个页面的权限(用户名:admin1、admin2、admin3)。
我试过controller-centric approach,如下...
import grails.plugin.springsecurity.annotation.Secured
@Secured(["authentication.name == 'admin1'", "authentication.name == 'admin2'", "authentication.name == 'admin3'"])
def transferMoney() {...}
但这仅授予第一个用户 admin1 的访问权限,其余 2 个用户没有访问权限。
然后我尝试从static mapping 授予访问权限...
grails.plugin.springsecurity.interceptUrlMap = [
'/hostAdmin/account/transferMoney': ["authentication.name == 'admin1'", "authentication.name == 'admin2'", "authentication.name == 'admin3'"]
]
或
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
[pattern: '/hostAdmin/account/transferMoney', access: ["authentication.name == 'admin1'", "authentication.name == 'admin2'", "authentication.name == 'admin3'"]]
]
但两者都没有效果,/hostAdmin/account/transferMoney 页面对 ALL 开放。
有人可以帮帮我吗?我真的必须弄清楚如何只授予这 3 个用户的访问权限。提前谢谢!
【问题讨论】:
-
http://grails-plugins.github.io/grails-spring-security-core/v3/index.html#requestmapClass怎么样?你甚至可以让它动态化。 -
你说的是
Requestmap Class[ grails-plugins.github.io/grails-spring-security-core/v3/… ],对吧?我想这也可能有效,但我更感兴趣的是使用Configuring Request Mappings[ grails-plugins.github.io/grails-spring-security-core/v3/… ] 方法。谢谢!
标签: spring grails spring-security