SpringSession中的sessionId什么时候会过期

使用SpringSession后,每次请求后,都会把期间变更的attribute保存到redis中。

每次访问都会修改lastAccessTime

org.springframework.session.web.http.SessionRepositoryFilter#doFilterInternal

 

org.springframework.session.data.redis.RedisIndexedSessionRepository.RedisSession#saveDelta

 RedisIndexedSessionRepository.this.expirationPolicy.onExpirationUpdated(originalExpiration, this);

 第请求一次,请求所关联的session的过期时间就会延长5分钟

long sessionExpireInSeconds = session.getMaxInactiveInterval().getSeconds();
long fiveMinutesAfterExpires = sessionExpireInSeconds + TimeUnit.MINUTES.toSeconds(5);
this.redis.boundValueOps(sessionKey).append("");
this.redis.boundValueOps(sessionKey).expire(sessionExpireInSeconds, TimeUnit.SECONDS);

实际的过期时间点,最后一次访问后 maxInactiveIntervalInSeconds + 5分钟后,session过期

 

posted @ 2023-12-18 15:29  沧海一滴  阅读(247)  评论(0编辑  收藏  举报