package org.springframework.session.data.redis;
import java.util.UUID;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.session.MapSession;
import org.springframework.session.data.redis.RedisOperationsSessionRepository;
public class SeiRedisOperationsSessionRepository extends RedisOperationsSessionRepository {
private Integer defaultMaxInactiveInterval;
private String router;
public SeiRedisOperationsSessionRepository(RedisOperations<Object, Object> sessionRedisOperations) {
super(sessionRedisOperations);
}
@Override
public RedisSession createSession() {
MapSession mapSession = new MapSession(UUID.randomUUID().toString().replace("-", "") + this.router);
RedisSession redisSession = new RedisSession(mapSession);
if (this.defaultMaxInactiveInterval != null) {
redisSession.setMaxInactiveIntervalInSeconds(this.defaultMaxInactiveInterval);
}
return redisSession;
}
@Override
public void setDefaultMaxInactiveInterval(int defaultMaxInactiveInterval) {
this.defaultMaxInactiveInterval = defaultMaxInactiveInterval;
}
public void setRouter(String router) {
this.router = router;
}
}
<bean id="sessionRepository" class="org.springframework.session.data.redis.SeiRedisOperationsSessionRepository">
<constructor-arg name="sessionRedisOperations" ref="sessionRedisTemplate"/>
<property name="defaultMaxInactiveInterval" value="7200"/>
<property name="router" value=".tomcat2"/>
</bean>