resources.groovy にフィルターを登録する代わりに、Config.groovy の filterChain 構成を使用してこれを行うことができます。スプリング セキュリティが filterchain.filterNames で使用するすべてのフィルターを宣言します。これには、必要な標準フィルターとカスタム フィルターの両方が含まれます。
grails.plugins.springsecurity.filterChain.filterNames = [
'securityContextPersistenceFilter', 'logoutFilter',
'authenticationProcessingFilter', 'firstCustomFilter','secondCustomFilter',
'rememberMeAuthenticationFilter', 'anonymousAuthenticationFilter',
'exceptionTranslationFilter', 'filterInvocationInterceptor'
]
次に、カスタム フィルターを特定の URL にマップします。除外を使用してこれを行う 1 つの方法は次のとおりです。
grails.plugins.springsecurity.filterChain.chainMap = [
'/customUrlOne/**': 'JOINED_FILTERS,-secondCustomFilter',
'/customUrlTwo/**': 'JOINED_FILTERS,-firstCustomFilter',
'/**': 'JOINED_FILTERS,-firstCustomFilter,-secondCustomFilter'
]
JOINED_FILTERSは、最初のマップで宣言したすべてのフィルターのセットです。「/**」の下では、除外されたカスタム フィルターを除くすべてのフィルターがアクティブになります。同様に、カスタム URL の下では、他の URL 用に除外されたカスタム フィルターを除いたすべてのフィルターがアクティブになります。これにより、customUrlOne へのトラフィックがfirstCustomFilterによってインターセプトされ、customUrlTwoへのトラフィックがsecondCustomFilterによってインターセプトされるようになります。