GrailsSpring安全插件-保护除根路径之外的所有内容
由于一些外部原因(web.xml中定义的一些过滤器仅应用于某些路径),我需要实现以下(简化)场景:GrailsSpring安全插件-保护除根路径之外的所有内容,spring,grails,spring-security,Spring,Grails,Spring Security,由于一些外部原因(web.xml中定义的一些过滤器仅应用于某些路径),我需要实现以下(简化)场景: /路径不需要身份验证并重定向到“/secured” /secured需要身份验证 /public1、/public2等不需要身份验证 其他一切(/**)都需要身份验证 为了实现这一点,在Config.groovy中定义了一个filterChain: grails.plugins.springsecurity.filterChain.filterNames = [..., 'myAuthenti
路径不需要身份验证并重定向到“/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
和一些其他路径“外部提供”
有什么好的方法来实现这种行为吗
我将Grails2.0.4与Spring Security核心插件一起使用。您可以使用URLMapping将特定的控制器和操作与
/
URL关联吗?然后,您可以保护除特定控制器/操作对之外的所有内容。在Grails中,有一种更简单的方法来定义这些规则。您可以使用或请求映射
例如,您可以在Config.groovy中定义安全配置:
grails.plugins.springsecurity.interceptUrlMap = [
'/secured/**': ['ROLE_ADMIN','IS_AUTHENTICATED_FULLY'],
'/public1/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/public2/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/js/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/css/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/images/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/login/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/logout/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/**': ['IS_AUTHENTICATED_FULLY'] //put this as the last item
]
grails.plugins.springsecurity.successHandler.defaultTargetUrl = "/secured" //redirect `/` access to `/secured`