防止具有过期会话的Spring身份验证请求的无效会话重定向

时间:2015-09-25 13:56:32

标签: spring-mvc spring-security

在使用Spring 4.1 / Spring Security 4.0的Web应用程序中,我希望防止会话过期重定向以进行身份​​验证请求,即使当前会话实际上已过期。

目前的行为是:

  • 用户在Web浏览器中打开应用程序登录页面,然后在没有登录的情况下打开页面,直到当前会话到期,或者更有可能在注销后返回应用程序(返回登录表单)和一段时间不活动。无论哪种方式,当前会话已过期,但浏览器显示登录表单。
  • 用户然后输入凭据并单击“登录”
  • 用户被重定向到无效的会话URL(使用invalid-session-url
  • 命名空间配置)

显然对于用户来说这是令人惊讶的 - 您正在查看登录页面,输入有效凭据,但随后收到会话超时通知而不是登录。

我想要发生的是,当用户提交登录表单时,以正常方式处理身份验证请求,无论当前HttpSession是否有效(必要时创建新会话) )。

似乎可能的解决方案可能是注入自定义InvalidSessionStrategy来代替SimpleRedirectInvalidSessionStrategy使用的默认SessionManagementFilter,以便不会重定向身份验证请求。但我无法通过命名空间配置看到一个简单的方法 - 这也让我想知道是否有一个替代解决方案可能是更好的选择,或者是否有一个原因导致使用命名空间不可用。

我错过了什么吗?

感谢。

0 个答案:

没有答案