Spring Security:会话过期而不重定向到过期网址?
Posted
技术标签:
【中文标题】Spring Security:会话过期而不重定向到过期网址?【英文标题】:Spring Security: session expiration without redirect to expired-url? 【发布时间】: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>
【问题讨论】:
你能解决这个问题吗? 【参考方案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 和任何其他访问者都有帮助以上是关于Spring Security:会话过期而不重定向到过期网址?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security KeyCloak 适配器不重定向到登录