Spring Boot Web应用程序-会话从实现ErrorController的控制器执行向前动作后丢失

问题描述

我有一个Spring Boot Web应用程序,该应用程序实现Spring安全性并将Redis用于会话数据。此应用程序实现了ErrorController来捕获白标错误。

我使用“ forward:/”指令重定向到404页面。转发之后,会话数据将丢失,并且将以未编码的格式创建“ JSESSIONID” cookie。默认cookie是“ SESSION”,即使会话数据丢失,它在转发后仍保持不变。我尝试了一些配置选项来设置Cookie名称以及其他几个选项:

server.servlet.session.cookie.name = SESSION
server.servlet.session.tracking-modes=cookie
server.servlet.session.cookie.http-only = true

我什至尝试将cookie名称设置为JSESSIONID

server.servlet.session.cookie.name = JSESSIONID

我还尝试添加以下内容,以确保Spring Security不添加会话: http.sessionManagement()。sessionCreationPolicy(SessionCreationPolicy.STATELESS)

我还在JSP页面中尝试了,以确保JSP没有创建会话。

这些都没有帮助。如果我将重定向指令更改为使用“ redirect:/”,则可以正常工作。但是我不想使用它,因为我想在浏览器中保留原始URL。

  1. Tomcat是否正在添加JSESSIONID cookie?如果是的话,为什么当Redis / Spring管理Session时,它会出现在图片中。
  2. 是否存在已知问题?

在此问题上的任何帮助,甚至包括一些指导,都将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...