私はspring-security-coreを使用しており、10 個以上のコントローラーを持っています。ユーザーがすべてのアクションにログインしているかどうかを確認したいです。すべてのアクションで実行する 1 つの方法を知って if(springSecurityService.isLoggedIn())
います。それを行う他の方法はありますか?すべてのアクション/コントローラーに同じロジックを記述する代わりに
2 に答える
アクションへのアクセスを完全に拒否したい場合は、いくつかの方法があります。
@grails.plugins.springsecurity.Secured
コントローラー クラスまたはアクション メソッドに注釈を付けることができます。リクエスト マップを作成することで、認証が必要なものを URL で指定することもできます。Requestmap ドメイン オブジェクトを作成するか、マップを使用して静的なリクエスト マップを作成できConfig.groovy
ますgrails.plugins.springsecurity.controllerAnnotations.staticRules
。
詳細については、Spring Security Core マニュアルを参照してください。
もしそれが私だったら、テイラーの答えをさらに一歩進めます。彼が言ったように実行しますが、すべてのコントローラーに同じコードをコピーして貼り付けるのではなく、Controller.groovy
テンプレートに一度入れてからgenerate-all
コマンドを実行してください。テンプレートはこのような場合に非常に強力です。テンプレートを最新の状態に保つと、アプリケーションが進化した場合に、必要に応じて 10 個のコントローラーまたは 100 個のコントローラーを簡単に変更できます。
テンプレートのインストール方法:
http://grails.org/doc/latest/ref/Command%20Line/install-templates.html