Spring Security:会话到期而没有重定向到expired-url?

时间:2010-04-22 18:04:53

标签: java session spring-security

我正在使用基于Spring Security 3.0.2表单的身份验证。但我无法弄清楚如何配置它以便当会话到期时请求不会重定向到其他页面(expired-url)或显示“会话过期”消息。

我不想要任何重定向或消息,我希望匿名会话的启动就像没有会话的用户进入网站一样。

我目前的配置:

<http>
  <intercept-url pattern="/login.action*" filters="none"/>
  <intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
  <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
  <form-login login-page="/login.action"
               authentication-failure-url="/login.action?error=failed"
               login-processing-url="/login-handler.action"/>
  <logout logout-url="/logoff-execute.action"
          logout-success-url="/logoff.action?done=1"/>
  <remember-me key="remember-me-security" services-ref="rememberMeServices"/>
  <session-management >
    <concurrency-control max-sessions="1"
                         error-if-maximum-exceeded="false"
                         expired-url="/login.action?error=expired.url"/>
  </session-management>
</http>

2 个答案:

答案 0 :(得分:0)

我会说你必须编写自己的过滤器 看看spring framework docs

还有一个尘土飞扬的样本,但我认为它仍然非常正确:timeout filter sample

答案 1 :(得分:0)

您可以尝试:

    <logout invalidate-session="true"
             logout-url="/LoginPage.jsf?error_logout=logoutComSucesso"/><!--invalido logout-success-url="/LoginPage.jsf?auth_error" -->
    <session-management session-fixation-protection="newSession" invalid-session-url="/LoginPage.jsf?error=sessionExpired"
                    session-authentication-error-url="/LoginPage.jsf?auth_error=BadCredencials" >
    </session-management>