Skip to content

Commit e2b39be

Browse files
committed
patch infinite session expiration bug
1 parent a3dd204 commit e2b39be

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -929,9 +929,12 @@ private void saveDelta() {
929929

930930
createShadowKey(sessionExpireInSeconds);
931931

932-
long fiveMinutesAfterExpires = sessionExpireInSeconds + TimeUnit.MINUTES.toSeconds(5);
933-
RedisIndexedSessionRepository.this.sessionRedisOperations.boundHashOps(getSessionKey(getId()))
934-
.expire(fiveMinutesAfterExpires, TimeUnit.SECONDS);
932+
if (sessionExpireInSeconds > 0) {
933+
long fiveMinutesAfterExpires = sessionExpireInSeconds + TimeUnit.MINUTES.toSeconds(5);
934+
RedisIndexedSessionRepository.this.sessionRedisOperations.boundHashOps(getSessionKey(getId()))
935+
.expire(fiveMinutesAfterExpires, TimeUnit.SECONDS);
936+
}
937+
935938

936939
RedisIndexedSessionRepository.this.expirationStore.save(this);
937940
this.delta = new HashMap<>(this.delta.size());
@@ -1036,8 +1039,11 @@ public void save(RedisSession session) {
10361039

10371040
String expirationsKey = getExpirationsKey(toExpire);
10381041
long sessionExpireInSeconds = session.getMaxInactiveInterval().getSeconds();
1039-
long fiveMinutesAfterExpires = sessionExpireInSeconds + TimeUnit.MINUTES.toSeconds(5);
1040-
this.redis.boundSetOps(expirationsKey).expire(fiveMinutesAfterExpires, TimeUnit.SECONDS);
1042+
1043+
if (sessionExpireInSeconds > 0) {
1044+
long fiveMinutesAfterExpires = sessionExpireInSeconds + TimeUnit.MINUTES.toSeconds(5);
1045+
this.redis.boundSetOps(expirationsKey).expire(fiveMinutesAfterExpires, TimeUnit.SECONDS);
1046+
}
10411047

10421048
String expireKey = getExpirationKey(toExpire);
10431049
BoundSetOperations<String, Object> expireOperations = this.redis.boundSetOps(expireKey);

0 commit comments

Comments
 (0)