当我尝试使用其他浏览器登录成功登录后,它将我重定向到authentication-failure-url。为什么它不会重定向到expired-url?
<http auto-config='false' use-expressions="true">
<intercept-url pattern="/login" access="permitAll"/>
<intercept-url pattern="/j_spring_security_check" access="permitAll"/>
<logout logout-success-url="/login.xhtml" invalidate-session="true" delete-cookies="JSESSIONID"/>
<form-login login-page="/login.xhtml"
login-processing-url="/j_spring_security_check"
default-target-url="/pages/index.xhtml"
always-use-default-target="true"
authentication-failure-url="/login.xhtml?error=true"/>
<custom-filter before="FORM_LOGIN_FILTER" ref="customAjaxControlFilter" />
<session-management invalid-session-url="/login.xhtml?error=sessionExpired" session-authentication-error-url="/login.xhtml?error=alreadyLogin">
<concurrency-control error-if-maximum-exceeded="true" max-sessions="1" expired-url="/login.xhtml?error=expired"/>
</session-management>
编辑:顺便说一下,在我成功注销后,它会将我重定向到invalid-session-url。我不明白发生了什么。
答案 0 :(得分:0)
这是预期的行为。从手册:
第二次登录将被拒绝。 “被拒绝”是指如果使用基于表单的登录,用户将被发送到authentication-failure-url。
如果您设置error-if-maximum-exceeded="true"
,则会发生这种情况。
如果您尚未设置error-if-maximum-exceeded="true"
,则会使用expired-url
参数。在这种情况下,将允许新登录,原始会话将被标记为已过期,如果您尝试使用它,您将被重定向到此URL。