springbootsession会话超时设置
springboot session会话超时设置
点关注不迷路,欢迎再来!
精简博客内容,尽量已专业术语来分享。
努⼒做到对每⼀位认可⾃⼰的读者负责。
帮助别⼈的同时更是丰富⾃⼰的良机。
问题发现
最近处理了⼀起springboot项⽬⽣产session-out超时问题,描述下问题:
在测试环境通过改动application.yaml配置session-out,经过设置不同时间验证session-out配置⽣效,于是就直接设置了过期时间为8⼩时发布到了⽣产环境。然⽽中午接到客户反应项⽬过期时间设置较短,半⼩时不操作 就会话过期需要反复登陆。本⼈接到反馈以后百思不得其解,明明看到session-out设置了8⼩时为什么出现过期问题。
解决处理
开发环境:springboot项⽬内置Tomcat,所以项⽬中application.yaml配置session-out是⽣效的。
⽣产环境:⽣产环境发布是通过云服务(Docker+K8s)通过Docker构建镜像⽅式,然⽽基础镜像tomacat的l中的session-out 是设置的30分钟。
解决思路:最终在Docker构建镜像时,将修改后的l放⼊DockerFile中,覆盖基础镜像原l,再次构建镜像成功替换原基础镜像的l,问题最终得以解决。
seesion失效:从⽤户登陆开始创建⼀个 session,当⽤户停⽌操作时间⼤于session-out设置时间则会话过期。
1.在⼯程的l中设置
[html] view plain copy
<!--时间单位为分钟-->
<session-config>
<session-timeout>15</session-timeout>
</session-config>
2.在web容器中设置(此处以tomcat为例)
[html] view plain copy
<!--==================== Default Session Configuration =================-->
<!-- You can set the default session timeout(in minutes)for all newly -->
<!-- created sessions by modifying the value below.-->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
3.通过Java代码设置
session和application的区别session.setMaxInactiveInterval(30*60);//以秒为单位
4.springboot项⽬application.yaml设置
server:
port:8089
session:
timeout:1800 #以秒为单位
5.将l copy到DockerFile
COPY./l /opt/tpapp/tomcat/conf
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论