Cookies Spring security不允许我重新登录已注销的帐户
我可以轻松地将任何用户登录到我的应用程序中,但一旦我注销,我就无法再次使用同一用户登录。 因此,我需要重新运行应用程序才能使用该帐户登录 当我第二次尝试登录时,它会显示以下消息,该消息应该针对并发访问显示Cookies Spring security不允许我重新登录已注销的帐户,cookies,spring-security,session-cookies,Cookies,Spring Security,Session Cookies,我可以轻松地将任何用户登录到我的应用程序中,但一旦我注销,我就无法再次使用同一用户登录。 因此,我需要重新运行应用程序才能使用该帐户登录 当我第二次尝试登录时,它会显示以下消息,该消息应该针对并发访问显示 Maximum sessions of 1 for this principal exceeded. 注销 <a href="<c:url value="/j_spring_security_logout" />" > Logout</a> my
Maximum sessions of 1 for this principal exceeded.
注销
<a href="<c:url value="/j_spring_security_logout" />" > Logout</a>
myproject security.xml
<session-management invalid-session-url="/index">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>
<logout delete-cookies="JSESSIONID,User,UserID"/>
</http>
我在我的web.xml中包含了以下代码
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
org.springframework.web.context.ContextLoaderListener
org.springframework.security.web.session.HttpSessionEventPublisher
听起来像是一个错误。@LukeTaylor我试过了,但没有帮助,如果我在不注销的情况下关闭浏览器,我需要再次登录,登录后会显示错误。这是正常行为。在你的问题中,你说你注销了,这意味着你主动点击了一个注销链接,从而破坏了会话。如果不注销,则用户在服务器上仍有活动会话。如果超过最大值=true,您已设置了错误,因此您将得到一个错误。@LukeTaylor正如我在注销后解释的,我无法再次登录;然而,据我所知,正常的行为是能够在每次注销后登录到系统。设置最大超出参数是为了避免并发登录,而不是已注销系统并希望再次登录的用户。很抱歉,但您在上面的评论中说“如果我在未注销的情况下关闭浏览器”,因此您的问题不清楚您是否真的注销了应用程序。检查会话是否已失效并从会话注册表中删除。您应该在调试日志中看到相应的输出。