【问题标题】:Give access to more than one user向多个用户授予访问权限
【发布时间】: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 个用户的访问权限。提前谢谢!

【问题讨论】:

标签: spring grails spring-security


【解决方案1】:

解决方案其实很简单^_^

我采用以控制器为中心的方法。这两种解决方案都有效....

@Secured(["authentication.name == 'admin1' || authentication.name == 'admin2' || authentication.name == 'admin3'"]) 

@Secured(closure = {
   assert request
   assert ctx
   authentication.name == 'admin1' || authentication.name == 'admin2' || authentication.name == 'admin3'
})

希望有人觉得这很有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2021-01-18
    • 2018-12-20
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多