在Spring security(3.0.6)中,如果我们尝试访问一个页面,并且会话超时,我们将被带到登录页面,并且在成功验证后,我们将被重定向到我们之前尝试访问的页面我们被带到登录页面。在过滤器拦截器链中,这个“最后访问的”url 保存在哪里?
我希望在重定向到“/exitUser”的特定情况下修改此“上次访问的”网址。我怎样才能做到这一点 ?
在重定向到登录页面之前,会缓存传入请求的副本(不仅仅是 URL)。这ExceptionTranslationFilter
意识到需要登录并将请求传递给配置的实例RequestCache
。里面有一个基本的描述参考手册 http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#request-caching.
您可以访问SavedRequest
通过向RequestCache
。默认情况下它存储在会话中,因此创建一个HttpSessionRequestCache
将为您提供所需的功能。您还可以自定义RequestCache
如果您希望使用名称空间 http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#nsa-request-cache.
使用保存的请求的实际重定向由AuthenticationSuccessHandler
实例。如果您想更改成功登录的重定向,您可以对其进行自定义。您可以在手册以及之前的 SO 问题中找到更多相关信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)