一、问题:
版本是SpringBoot 2.1.9
内嵌Tomcat 管理Session 默认时长1800s。当前版本配置sever.servlet.session.timeout 参数来管理session 失效时长,本地项目有生效,但是Jenkins 构建后测试环境仍然是1800s。哪位巨巨能解答下???
# session 时长单位s
server:
servlet:
session:
timeout: 12h
server.servlet.session.timeout 参数对于SpringBoot 内嵌的Tomcat 生效。本地开发环境走的内嵌Tomcat;
测试环境使用的是WAR 包,部署在外部Tomcat 中,该参数对外部Tomcat 不生效。
三、解决方案
方式二:可以直接改Tomcat 配置,一般不推荐,除非Tomcat 只服务于这一个应用程序。
Tomcat 的conf 下web.xml 中的
<Context path="/test" docBase="/test" defaultSessionTimeOut="43200" isWARExpanded="true" isWARValidated="false" isInvokerEnabled="true" isWorkDirPersistent="false"/>
方式三:在程序中设置session 失效时长,比如在用户登录成功后设置。
此处我使用的是该方式。
/*12h*/
session.setMaxInactiveInterval(43200);