Grails2.0.4とSpringSecurityCoreプラグイン1.2.7.2を使用していることに注意してください
これはバグのようですが、最初に正しく実行していることを確認したいと思います。基本的に、HTTPSで保護された特定のURLが必要ですが、残りは非常に標準的なようです。ユーザーが安全でないURLにアクセスした場合、HTTPSにとどまらないようにします。最後のポイントを達成するためにこの行を追加するまで、すべてが正常に機能します。
'/**': 'REQUIRES_INSECURE_CHANNEL'
その時点で、何らかの理由で私の安全なコントローラー名はすべて「grails」で書き直され、物事はひどく壊れます。だから例えば私が行くなら
http://localhost:8080/login/index
あれは。。。になる
http://localhost:8080/grails/auth/index.dispatch
(「grails」は私のアプリの名前ではなく、「grails」という名前のコントローラーもありません-私のアプリはルートで実行されます)
ルートワイルドカードのエントリを削除すると、すべてが正常に機能し、保護したいページの外でhttpsにとどまりますが、URLにその奇妙な「grails」が表示されなくなります。
これが私の完全な構成です。安全なページは、私が見ることができる安全でないリソースをロードしようとはせず、「ANY_CHANNEL」で定義されたものだけをロードすることに注意してください。
grails.plugins.springsecurity.secureChannel.definition = [
'/login/**': 'REQUIRES_SECURE_CHANNEL',
'/register/**': 'REQUIRES_SECURE_CHANNEL',
'/changePassword/**': 'REQUIRES_SECURE_CHANNEL',
'/userAccountManagement/**': 'REQUIRES_SECURE_CHANNEL',
'/simpleCaptcha/**': 'ANY_CHANNEL',
'/img/**': 'ANY_CHANNEL',
'/images/**': 'ANY_CHANNEL',
'/static/**': 'ANY_CHANNEL',
'/**': 'REQUIRES_INSECURE_CHANNEL' //remove this, everything OK
]