diff --git a/spring-session/src/main/java/org/springframework/session/MapSessionRepository.java b/spring-session/src/main/java/org/springframework/session/MapSessionRepository.java index 2d52cd95..a16bf563 100644 --- a/spring-session/src/main/java/org/springframework/session/MapSessionRepository.java +++ b/spring-session/src/main/java/org/springframework/session/MapSessionRepository.java @@ -33,6 +33,11 @@ import java.util.concurrent.ConcurrentHashMap; * @since 1.0 */ public class MapSessionRepository implements SessionRepository { + /** + * If non-null, this value is used to override {@link ExpiringSession#setMaxInactiveInterval(int)}. + */ + private Integer defaultMaxInactiveInterval; + private final Map sessions; /** @@ -54,6 +59,14 @@ public class MapSessionRepository implements SessionRepository this.sessions = sessions; } + /** + * If non-null, this value is used to override {@link ExpiringSession#setMaxInactiveInterval(int)}. + * @param defaultMaxInactiveInterval + */ + public void setDefaultMaxInactiveInterval(int defaultMaxInactiveInterval) { + this.defaultMaxInactiveInterval = Integer.valueOf(defaultMaxInactiveInterval); + } + public void save(ExpiringSession session) { sessions.put(session.getId(), new MapSession(session)); } @@ -77,6 +90,10 @@ public class MapSessionRepository implements SessionRepository } public ExpiringSession createSession() { - return new MapSession(); + ExpiringSession result = new MapSession(); + if(defaultMaxInactiveInterval != null) { + result.setMaxInactiveInterval(defaultMaxInactiveInterval); + } + return result; } } diff --git a/spring-session/src/main/java/org/springframework/session/data/redis/RedisOperationsSessionRepository.java b/spring-session/src/main/java/org/springframework/session/data/redis/RedisOperationsSessionRepository.java index 223a3aec..6744bc90 100644 --- a/spring-session/src/main/java/org/springframework/session/data/redis/RedisOperationsSessionRepository.java +++ b/spring-session/src/main/java/org/springframework/session/data/redis/RedisOperationsSessionRepository.java @@ -148,7 +148,7 @@ public class RedisOperationsSessionRepository implements SessionRepository