From 8610d60b0c1d9a3f1ed334871b51cdfe5da1a577 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Fri, 1 Feb 2019 17:12:17 +0300 Subject: [PATCH] Fixed - Spring session ID change doesn't work in Redis cluster #1897 --- .../spring/session/RedissonSessionRepository.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/spring/session/RedissonSessionRepository.java b/redisson/src/main/java/org/redisson/spring/session/RedissonSessionRepository.java index 96050ce68..933a6e206 100644 --- a/redisson/src/main/java/org/redisson/spring/session/RedissonSessionRepository.java +++ b/redisson/src/main/java/org/redisson/spring/session/RedissonSessionRepository.java @@ -216,7 +216,14 @@ public class RedissonSessionRepository implements FindByIndexNameSessionReposito @Override public String changeSessionId() { String id = delegate.changeSessionId(); - map.rename(keyPrefix + id); + if (redisson.getConfig().isClusterConfig()) { + Map oldState = map.readAllMap(); + map.delete(); + map = redisson.getMap(keyPrefix + id, map.getCodec()); + map.putAll(oldState); + } else { + map.rename(keyPrefix + id); + } return id; }