2017-05-16 8 views
0

私は既に'ROLE_ADMIN', 'ROLE_SUPERUSER', 'ROLE_USER'の役割を設定しており、完全に機能しています。今、特定のページに3人の特定のユーザーへのアクセスを与える必要があります。(ユーザー名:admin1、admin2、admin3)。複数のユーザーへのアクセスを許可

従うように私は...、

import grails.plugin.springsecurity.annotation.Secured 

@Secured(["authentication.name == 'admin1'", "authentication.name == 'admin2'", "authentication.name == 'admin3'"]) 
def transferMoney() {...} 

controller-centric approachを試みたが、唯一、最初のユーザに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人のユーザーにのみアクセス権を与える方法を見つけなければなりません。前もって感謝します!

+0

どう 'についてhttp://grails-plugins.github.io/見つけましたgrails-spring-security-core/v3/index.html#requestmapClass'?動的にすることさえできます。 – fsi

+0

あなたは 'Requestmap Class' [https://grails-plugins.github.io/grails-spring-security-core/v3/#requestmapClass]について話しているのですか?私はそれがうまくいくかもしれないと思うが、私は '要求マッピングの設定' [https://grails-plugins.github.io/grails-spring-security-core/v3/#requestMappings]アプローチを使ってそれを行うことにもっと興味を持っていました。ありがとう! – AlwaysANovice

答えて

0

解決策は実際にはかなり簡単でした^^^

私はコントローラ中心のアプローチを行っていました。そして、これらのソリューションの両方が働いていた....

@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' 
}) 

ホープ誰かがこの便利:)

関連する問題