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

通过 Spring Security 配置 Grails 配置插件 grails-ckeditor

带有 grails 的 Spring Security 核心插件