Grails Spring Security 插件网址
Posted
技术标签:
【中文标题】Grails Spring Security 插件网址【英文标题】:Grails Spring Security plugin url 【发布时间】:2012-12-10 03:21:10 【问题描述】:Grails Spring Security 插件文档显示了与注销 url 相关的这两个属性(复制自 https://github.com/grails-plugins/grails-spring-security-core/blob/master/src/docs/guide/13%20URL%20Properties.gdoc)
logout.afterLogoutUrl | '/' | URL for redirect after logout.
logout.filterProcessesUrl | '/j_spring_security_logout' | Logout URL, intercepted by Spring Security filter.
当我运行 s2-quickstart 脚本生成LogoutController
时,默认行为是重定向到logout.filterProcessesUrl
。
如果LogoutController
没有重定向到logout.afterLogoutUrl
的目的是什么?
【问题讨论】:
【参考方案1】:Spring Security 引入了一些过滤器,Java filters,而不是 Grails。此过滤器执行所有身份验证工作,请参阅http://static.springsource.org/spring-security/site/docs/3.1.x/reference/security-filter-chain.html
logout.filterProcessesUrl
由 Spring Security 过滤器处理,并在清理后(从当前上下文中删除用户等)重定向到 logout.afterLogoutUrl
。
LogoutController
什么都不做,只是重定向到过滤器。您可以在自己的控制器中将用户重定向到该用户,甚至可以将<a
链接到此类网址
【讨论】:
所以我需要创建一个由/j_spring_security_logout
指向的控制器来进行清理,然后在该控制器的末尾,我应该重定向到logout.afterUrl
?还是这会自动发生(我在UrlMappings.groovy
中没有看到任何会导致这种情况自动发生的内容)?
它是自动发生的,有一个标准的 java 过滤器(不是 Grails 过滤器),它处理 logout.filterProcessesUrl
url
好的,谢谢。如果您不介意,还有 2 个附加问题。 1. 是否有理由自定义 /j_spring_security_logout?我认为它是可自定义的值一定是有原因的。 2. 插件是否对我的配置文件进行任何编译时更改?我试图找出过滤器的添加位置,但我不确定在哪里。
1) 是的,您可以将/j_spring_security_logout
更改为您想要的任何内容。 2)过滤器添加在github.com/grails-plugins/grails-spring-security-core/blob/…
谢谢,我想我应该问为什么你想要自定义 j_spring_security_logout 或 logout.filterProcessUrl。以上是关于Grails Spring Security 插件网址的主要内容,如果未能解决你的问题,请参考以下文章
Grails,Spring Security LDAP 插件
在 grails 中使用 spring-security 插件时出错
使用 Spring Security Grails 插件编码密码
Grails - 卸载 Spring Security Core