【问题标题】:Grails Spring Security plugin urlGrails Spring Security 插件网址
【发布时间】: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 的目的是什么?

【问题讨论】:

    标签: grails spring-security logout


    【解决方案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。
    猜你喜欢
    • 2016-05-24
    • 2011-08-15
    • 2016-03-23
    • 2012-09-29
    • 2012-05-24
    • 2014-11-06
    • 2014-03-08
    • 1970-01-01
    • 2013-01-17
    相关资源
    最近更新 更多