1

後でロール名を外部化する目的で、Spring Security の @Secured アノテーションを介して grails アプリケーションの Config にアクセスしようとしています。

残念ながら、私はこれを機能させることができませんでした。非推奨の ConfigurationHolder クラスを使用しようとすることも、grailsApplication オブジェクトへの参照を取得することもありません。

import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
@Secured([CH.config.grails.app.user])
class MyController { ...}

Config.groovy:
...
grails.app.user = "ROLE_APPNAME_USER"
...

これを解決する方法について誰かアドバイスがありますか?

編集情報を提供するバートの記事
に 出くわしました。

4

1 に答える 1

4

できません。注釈要素の値は、コンパイラによって解決され、クラス バイトコードの一部として格納されるため、コンパイル時の定数である必要があります。

アノテーションの代わりに、他のメカニズムのいずれかを使用してセキュリティ制約 (データベース内の静的ルールまたは Requestmap インスタンス) を指定する方がうまくいく場合があります。

于 2013-06-20T14:12:02.523 に答える