嵌入式Tomcat的Spring Boot:会话不会通过重启持久化

时间:2018-01-10 04:32:09

标签: spring-mvc session tomcat spring-boot

我对此所做的研究似乎表明这应该是自动发生的。一些着作表明需要将server.session.persistent=true放在src / main / resources / application.properties中。我已经这样做了,我相信会议仍然没有坚持下去。

一些背景知识:将Spring Boot与嵌入式Tomcat和Spring MVC + Thymeleaf结合使用。用户使用他们的Google帐户“登录”我的应用程序。一旦他们通过Google进行身份验证,我的应用程序会为他们提供一个唯一的标识符,该标识符将作为属性存储在用户的HttpSession中。此属性的类型为Integer。我确实有一个H2数据库连接到这个应用程序,但从我读过的,我应该能够解决这个问题,而不必担心在数据库中存储会话。

当我使用gradle(bootRun)启动应用程序时,我会按预期收到带有JSESSIONID的cookie,然后我的用户登录。用户可以导航到我的Spring MVC应用程序中的不同页面,并且由于在服务器端设置了会话属性,他们仍然“登录”。当我在IDE中停止进程时(据我所知这与终止它不一样)并重新启动它,然后再次在Web浏览器中访问我的应用程序,我立即发出了不同的JSESSIONID。

在我看来,直接的问题是我的会话在服务器重启之间没有被记住。我看过一些暗示实现我自己的“会话商店”或类似内容的文章,但我认为首先有必要让服务器理解这是同一个会话。

我很乐意提供更多有用的信息,感谢所有花时间阅读本文的人。

最终说明: 我没有使用Spring Session或Spring Security,此时我预计不需要这个项目。

这是一个供自己个人使用的“原型”应用程序,因此请随时警告设计问题,但我并不打算从安全角度对其进行防弹。

0 个答案:

没有答案