【发布时间】:2012-11-03 03:24:22
【问题描述】:
由于一些外部原因(web.xml中定义的一些过滤器只适用于某些路径),我需要实现以下(简化)场景:
-
/路径不需要身份验证并重定向到'/secured' -
/secured需要认证 -
/public1、/public2等不需要认证 - 其他所有内容 (
/**) 都需要身份验证
为了实现这一点,在Config.groovy 中定义了一个filterChain:
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。
【问题讨论】:
标签: spring grails spring-security