导航到spring security登录页面重定向到invalid-session-url

 minoz-uuuu 发布于 2023-01-30 17:19

为了将用户重定向到我希望会话超时的网址,我最近将以下内容添加到我的spring安全文件中....







 


    
    
          
    
         
    

        

       

当会话在下次单击时到期时,用户将被带到/sessionExpired.htm,这是期望的效果,但是当我导航到登录页面(login.htm)时,我现在遇到问题,我被重定向到invalid-session-url (/sessionExpired.htm).

显然这不是我想要发生的事情.我一直在做一些阅读,其中一个建议的解决方案似乎是删除像这样的jsessionid cookie,并将invalidate-session设置为false(我现在在logout.htm的控制器方法中使会话无效)...


我尝试过,但似乎没有工作.有人可以帮我理解这里发生的事情以及我如何解决?好像当我进入登录页面时,它试图记住我是谁.

谢谢

1 个回答
  • 我在Tomcat中遇到了这个问题(不确定是否只适用于它).

    从Tomcat文档(参见此处)我们可以得出结论,为会话cookie生成的路径有一个尾部斜杠:

    某些浏览器(例如IE)将为/ foo路径的上下文发送会话cookie,并请求/ foobar.为了防止这种情况,Tomcat将向与会话cookie关联的路径添加尾部斜杠,因此,在上面的示例中,cookie路径变为/ foo /.但是,使用/ foo /的cookie路径,IE将不再向/ foo发送带有请求的cookie.除非有一个servlet映射到/*,否则这应该不是问题.在这种情况下,需要禁用此功能.此属性的默认值为true.要禁用此功能,请将该属性设置为false.

    另一方面,spring-security的CookieClearingLogoutHandler将生成一个没有尾部斜杠的cookie路径.set-cookie响应头将被发送到浏览器,但cookie路径将与路径不匹配,因为缺少尾部斜杠.

    浏览器不会清除现有的JSESSIONID cookie,因为路径不匹配.

    我解决了我实现CookieClearingLogoutHandler的自定义实现的问题.

    2023-01-30 17:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有