前段时间在CSDN上看到一帖子
SpringBoot 2设置session过期时间生效后再修改不生效
,然后就去试了一下,开始我设置的时间session过期时间是两分钟。
server:
servlet:
session:
timeout: PT2M
@RequestMapping(value = "v1")
public void v1(HttpServletRequest request) {
int max = request.getSession().getMaxInactiveInterval();
String id = request.getSession().getId();
System.out.println("max: " + max + " sessionId: " + id);
max: 120 sessionId: D44E9933E48AF7A60161BC0F6D270BA3
然后将过期时间改成3分钟,然后重启项目:
server:
servlet:
session:
timeout: PT3M
调用接口输出:
max: 120 sessionId: DB9734ED5F72F098A138E09580CA9A9B
当我百思不得其解的时候,又把浏览器刷新了一遍,发现输出的session过期时间已经变成180了。仔细看了一下sessionId,已经不是上次那个id了。
那就说明上个session已经过期了,然后又重新生成了一个新的session,并且使用的过期时间是我们配置的。
结论:设置session过期时间并浏览器调用接口,再重新调整session过期时间重启项目,再次调用接口session过期时间不会变,则需要等待该session过期后,重新生成的session才是我们最后设置的过期时间。
解决办法:
- 等待旧session过期后,重新生成session。
- 重新打开浏览器,再调用接口。
个人理解,如果错误,欢迎指正。
[转帖]彻底解决session设置timeout不起作用、自动失效的方法 系统运行环境:win2003+iis6.0+asp做了多次测试,居然不好用,这是为什么呢,上网找了许多资料,但是都属于session的基础篇,所以狠下心来,也不找了,自己研究吧,但是无论多少次测试却都无效,没办法了,换个方法试试吧,用cookies配合下session,看看效果,这一试问题居然解决了,结果出来了,得出论证了,原来如此,下面我来说下解决方法:以下是代码片段:’-- 用户登录成功后将用户名及用户级别等一些信息存入sessi
就是因为这个所以Session不能永久使用!2、session.name:这个就是SessionID储存的变量名称,可能是Cookie,也可能是Query_String来传递,默认值是“PHPSESSID”;1、session.use_cookies:默认的值是“1”,代表SessionID使用Cookie来传递,反之就是使用Query_String来传递;4、session.gc_maxlifetime:这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除!
所以可以在注解上配置过期时间来完成我们的需求:@EnableRedissonHttpSession(maxInactiveIntervalInSeconds = 3600)一开始我认为只修改yml文件中的server.servlet.session.timeout=60m就行了,但是发现redis中的过期时间还是1800s。现状:spring boot项目,使用redisson将spring session存入redis中,过期时间为默认的30分钟。需求:延长session过期时间。
如果使用RedisSesion,在EnableRedisHttpSession注解中有相关配置,配置优先级:
@EnableRedisHttpSession > spring.session.timeout > server.servlet.session.timeout
解决方法:
1、使用spring.session.timeout配置session超时时间,不要加@Enab...
shiro的sesssion由sessionmanager管理,所以这里有必要介绍一下sessionmanager,shiro常用的sessionmanager有ServletContainerSessionManager、DefaultWebSessionManager。
servlet容器管理session
设置为ServletContainerSessionManager时,...
Spring Cloud 的架构设计。其实 Spring Boot 在一开始时,运用到的基本就是 Eureka、Config、Zuul、Ribbon、Feign、Hystrix 等。到了 Spring Boot 2.x 的时候,大量的组件开始风云崛起。下面简单列下这两个版本之间的区别如下。Spring Boot 1.x 中,session 的超时时间是这样的:
而在 2.x 中:
截然不同的写法,cookie 也是一样的:
应用的 ContextPath 配置属性改动,跟上面的 session 一样,加上