1

私はspring-security-coreを使用しており、10 個以上のコントローラーを持っています。ユーザーがすべてのアクションにログインしているかどうかを確認したいです。すべてのアクションで実行する 1 つの方法を知って if(springSecurityService.isLoggedIn())います。それを行う他の方法はありますか?すべてのアクション/コントローラーに同じロジックを記述する代わりに

4

2 に答える 2

3

アクションへのアクセスを完全に拒否したい場合は、いくつかの方法があります。

@grails.plugins.springsecurity.Securedコントローラー クラスまたはアクション メソッドに注釈を付けることができます。リクエスト マップを作成することで、認証が必要なものを URL で指定することもできます。Requestmap ドメイン オブジェクトを作成するか、マップを使用して静的なリクエスト マップを作成できConfig.groovyますgrails.plugins.springsecurity.controllerAnnotations.staticRules

詳細については、Spring Security Core マニュアルを参照してください。

于 2012-07-10T14:23:50.453 に答える
1

もしそれが私だったら、テイラーの答えをさらに一歩進めます。彼が言ったように実行しますが、すべてのコントローラーに同じコードをコピーして貼り付けるのではなく、Controller.groovyテンプレートに一度入れてからgenerate-allコマンドを実行してください。テンプレートはこのような場合に非常に強力です。テンプレートを最新の状態に保つと、アプリケーションが進化した場合に、必要に応じて 10 個のコントローラーまたは 100 個のコントローラーを簡単に変更できます。

テンプレートのインストール方法:

http://grails.org/doc/latest/ref/Command%20Line/install-templates.html

于 2012-07-11T03:54:40.247 に答える