【问题标题】:Spring Security: session expiration without redirect to expired-url?Spring Security:会话过期而不重定向到过期网址?
【发布时间】:2011-02-11 04:54:35
【问题描述】:

我正在使用基于 Spring Security 3.0.2 表单的身份验证。但我不知道如何配置它,以便在会话过期时请求不会重定向到其他页面(过期网址)或显示“会话过期”消息。

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

我目前的配置:

<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>

【问题讨论】:

  • 你能解决这个问题吗?

标签: java session spring-security


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    你可以试试:

        <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>
    

    【讨论】:

    • 请用英文提供您的答案,谢谢 :) 此外,除了提供代码示例外,如果您解释您的答案,这对 OP 和任何其他访问者都有帮助
    猜你喜欢
    • 2016-10-12
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2014-11-27
    • 1970-01-01
    相关资源
    最近更新 更多