本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Spring Security 中如何防止多次登录

发布于2024-11-02 21:01     阅读(231)     评论(0)     点赞(12)     收藏(3)


我有以下 Spring Security 配置。当我在首次成功登录和注销后添加 session-management 属性时,我无法再次登录。它会将我重定向到 authentication-failure-url。如果我删除它,它就可以正常工作。我可以成功重新加入。我在 session-management 方面做错了什么?

    <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">
        <concurrency-control error-if-maximum-exceeded="true" max-sessions="1" expired-url="/login.xhtml"/>            
    </session-management>
</http>

解决方案


确保已将侦听器添加到 web.xml 文件中。务必确保在会话被销毁时通知 Spring Security 会话注册表。如果没有它,会话信息将不会从注册表中删除。

<listener>
    <listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
</listener> 


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/691845/2043f1c4cbe8655d9d2a/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

12 0
收藏该文
已收藏

评论内容:(最多支持255个字符)