いくつかの外部的な理由 (web.xml で定義され、一部のパスにのみ適用されるフィルターがいくつかあります) により、次の (簡略化された) シナリオを実現する必要があります。
/
パスは認証を必要とせず、「/secured」にリダイレクトします/secured
認証が必要です/public1
、/public2
などは認証を必要としません- それ以外 ( ) はすべて
/**
認証が必要です
これを達成するために、filterChain
定義された in がありConfig.groovy
ます:
grails.plugins.springsecurity.filterChain.filterNames = [..., 'myAuthenticationFilter']
grails.plugins.springsecurity.filterChain.chainMap = [
'/': 'JOINED_FILTERS,-myAuthenticationFilter',
'/public1/**': 'JOINED_FILTERS,-myAuthenticationFilter',
'/public2/**': 'JOINED_FILTERS,-myAuthenticationFilter',
'/**': 'JOINED_FILTERS'
]
ただし、/
パスの一致には問題があります。私は試し'/'
てみ''
ました。このパスを と一致させることはでき'/*'
ますが、より多くの URL と一致するため、これは必要ありません。
にアクセスするときにユーザーに認証を要求することはでき/
ませ/secured
ん/secured
.
この動作を実現する良い方法はありますか?
Spring Security Core プラグインで Grails 2.0.4 を使用しています。