授予多个用户访问权限

时间:2017-05-16 18:17:57

标签: spring grails spring-security

我已经设置了'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页面对所有人开放。

有人可以帮帮我吗?我真的必须弄清楚如何只访问这3个用户。提前谢谢!

1 个答案:

答案 0 :(得分:0)

解决方案实际上非常简单^ _ ^

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

 Sub B64_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B64.Click
    Dim BClick As Integer = 0
    If BClick = 0 Then
        BClick = 1
        'Other instructions
    End If

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

希望有人发现这有用:)