2013-11-15 15 views
7

Grails Spring Security Core 2.0の新しいプラグインを使用していますが、ログインビューとLoginController/LogoutControllerをカスタマイズする方法がわかりましたか?Grails Spring Security Core 2のログイン/ログアウトコントローラとビューをカスタマイズするには?

プラグインの以前のバージョンではこれらのファイルが生成されましたが、プラグインからプロジェクトにコピーする必要があるようです。これは正しいアプローチですか?

もしそうなら、コピーしたコントローラーとビューを元のものと別のパッケージに入れてもかまいません。 IntelliJは同じパッケージ内に同じアーティファクトを持つことを嫌うようです。

+0

これはあなたのためにできましたか? 'LogoutController.groovy'を' controllers \ grails \ plugin \ springsecurity \ LogoutController.groovy'にコピーしましたが、変更は反映されません。私はそれがまだプラグインコントローラを使用すると思います。 – Guus

答えて

5

デフォルトでは、ログアウトはPOST要求によってのみ許可されます。これを変更してGETリクエストがあなたのConfig.groovyファイルに以下を追加できるようにします。あなたがそのセットを持っていたら

grails.plugin.springsecurity.logout.postOnly = false 

あなたがWhat's New in Version 2.0マニュアルをバージョン2の外観に変更された他に何の詳細情報を検索する場合

<g:link controller="logout">logout</g:link> 

をログアウトするために、コントローラをログアウトするために直接リンクすることができます

2

別のオプションは、デフォルトでは「ポスト」メソッドを使用していますremote linkを使用することです

<g:remoteLink class="logout" controller="logout">${message(code: 'springSecurity.logout.link')}</g:remoteLink> 
+0

'asynchronous'属性を' false'に設定して実際にリンクの現在の位置を変更する必要はありませんか? –

1

私は上記の答えのいずれかが実際に質問に答えないと思います。

web-appのコントローラーとビューをオーバーライドする場合は、web-appにコピーしてください。 spring-security-coreプラグインがURLで参照するようにして、あなたのものがそれらを置き換えるようにしたい場合は、別のパッケージ階層を与えることさえできます。

これは、メインのweb-appで宣言されたコントローラとビューがプラグインにあるものよりも優先されるためです。

しかし、他のプラグインでこれをやっているのであれば、少しばかげてしまいます。 See this questiona and answer for a solution to that problem

+0

この回答をお寄せいただきありがとうございます!! –

関連する問題