由于一些外部原因(web.xml 中定义的一些过滤器仅适用于某些路径),我需要实现以下(简化)场景:
/
路径不需要身份验证并重定向到“/secured”/secured
需要身份验证/public1
,/public2
, 等不需要身份验证- 其他所有内容 (
/**
) 都需要身份验证
为了实现这一点,有一个filterChain
定义在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。