Spring 安全性 - 启用 Tomcat 会话持久性



我们最近实现了基于弹簧安全表单的登录。在重新启动服务器期间,现有会话将失效,并且当服务器再次启动时,应用程序将失败。

有没有办法在开箱即用的 tomcat 中实现会话持久性。我已经在上下文中注释掉了<Manager pathname="" />.xml但仍然没有保留会话。

实现中的任何指针都将非常有帮助。

这就是它所需要的一切,只要你优雅地重新启动它(例如shutdownstartup./bin(中的脚本,并让Tomcat有机会将会话序列化到磁盘

默认上下文.xml

<Context>
<!-- Default set of monitored resources. If one of these changes, the    -->
<!-- web application will be reloaded.                                   -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
</Context>

试试这个:

  1. 启动雄猫,登录到您的应用程序以创建会话。
  2. 停止雄猫
  3. 浏览到{Apache Tomcat}/work/Catalina/localhost/ROOT,您应该找到SESSIONS.ser文件,其中包含写入磁盘的序列化会话。

如果您没有看到该文件,则其他内容正在进行中。 如果可能,请分享其他详细信息。

会话中的所有内容是否都实现了可序列化?

从文档中:

为了成功恢复会话属性的状态,所有 此类属性必须实现java.io.Serializable接口。

如果这是问题所在,通常 Tomcat 日志中会显示一条错误消息。

相关内容

  • 没有找到相关文章

最新更新