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 02cfd64..d67c381 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 @@ -155,20 +155,18 @@ public class RedisOperationsSessionRepository implements SessionRepository sessionRedisOperations, RedisOperations expirationRedisOperations) { + public RedisOperationsSessionRepository(RedisOperations sessionRedisOperations) { Assert.notNull(sessionRedisOperations, "sessionRedisOperations cannot be null"); - Assert.notNull(expirationRedisOperations, "expirationRedisOperations cannot be null"); this.sessionRedisOperations = sessionRedisOperations; - this.expirationPolicy = new RedisSessionExpirationPolicy(sessionRedisOperations, expirationRedisOperations); + this.expirationPolicy = new RedisSessionExpirationPolicy(sessionRedisOperations); } /** diff --git a/spring-session/src/main/java/org/springframework/session/data/redis/RedisSessionExpirationPolicy.java b/spring-session/src/main/java/org/springframework/session/data/redis/RedisSessionExpirationPolicy.java index 3f8a88d..1f7b8af 100644 --- a/spring-session/src/main/java/org/springframework/session/data/redis/RedisSessionExpirationPolicy.java +++ b/spring-session/src/main/java/org/springframework/session/data/redis/RedisSessionExpirationPolicy.java @@ -58,11 +58,10 @@ final class RedisSessionExpirationPolicy { private final RedisOperations expirationRedisOperations; public RedisSessionExpirationPolicy( - RedisOperations sessionRedisOperations, - RedisOperations expirationRedisOperations) { + RedisOperations sessionRedisOperations) { super(); this.sessionRedisOperations = sessionRedisOperations; - this.expirationRedisOperations = expirationRedisOperations; + this.expirationRedisOperations = sessionRedisOperations; } public void onDelete(ExpiringSession session) { diff --git a/spring-session/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfiguration.java b/spring-session/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfiguration.java index ad0dae0..cbeb4df 100644 --- a/spring-session/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfiguration.java +++ b/spring-session/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfiguration.java @@ -93,17 +93,8 @@ public class RedisHttpSessionConfiguration implements ImportAware, BeanClassLoad } @Bean - public RedisTemplate expirationRedisTemplate(RedisConnectionFactory connectionFactory) { - RedisTemplate template = new RedisTemplate(); - template.setKeySerializer(new StringRedisSerializer()); - template.setHashKeySerializer(new StringRedisSerializer()); - template.setConnectionFactory(connectionFactory); - return template; - } - - @Bean - public RedisOperationsSessionRepository sessionRepository(RedisTemplate sessionRedisTemplate, @Qualifier("expirationRedisTemplate") RedisTemplate expirationRedisTemplate) { - RedisOperationsSessionRepository sessionRepository = new RedisOperationsSessionRepository(sessionRedisTemplate,expirationRedisTemplate); + public RedisOperationsSessionRepository sessionRepository(RedisTemplate sessionRedisTemplate) { + RedisOperationsSessionRepository sessionRepository = new RedisOperationsSessionRepository(sessionRedisTemplate); sessionRepository.setDefaultMaxInactiveInterval(maxInactiveIntervalInSeconds); return sessionRepository; } diff --git a/spring-session/src/test/java/org/springframework/session/data/redis/RedisOperationsSessionRepositoryTests.java b/spring-session/src/test/java/org/springframework/session/data/redis/RedisOperationsSessionRepositoryTests.java index cc5e1bf..d736f4a 100644 --- a/spring-session/src/test/java/org/springframework/session/data/redis/RedisOperationsSessionRepositoryTests.java +++ b/spring-session/src/test/java/org/springframework/session/data/redis/RedisOperationsSessionRepositoryTests.java @@ -40,9 +40,7 @@ public class RedisOperationsSessionRepositoryTests { @Mock RedisConnection connection; @Mock - RedisOperations redisOperations; - @Mock - RedisOperations expirationRedisOperations; + RedisOperations redisOperations; @Mock BoundHashOperations boundHashOperations; @Mock @@ -56,12 +54,12 @@ public class RedisOperationsSessionRepositoryTests { @Before public void setup() { - this.redisRepository = new RedisOperationsSessionRepository(redisOperations,expirationRedisOperations); + this.redisRepository = new RedisOperationsSessionRepository(redisOperations); } @Test(expected=IllegalArgumentException.class) public void constructorNullConnectionFactory() { - new RedisOperationsSessionRepository(null); + new RedisOperationsSessionRepository((RedisConnectionFactory)null); } // gh-61 @@ -93,7 +91,7 @@ public class RedisOperationsSessionRepositoryTests { public void saveNewSession() { RedisSession session = redisRepository.createSession(); when(redisOperations.boundHashOps(getKey(session.getId()))).thenReturn(boundHashOperations); - when(expirationRedisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); + when(redisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); redisRepository.save(session); @@ -110,7 +108,7 @@ public class RedisOperationsSessionRepositoryTests { RedisSession session = redisRepository.new RedisSession(new MapSession()); session.setLastAccessedTime(12345678L); when(redisOperations.boundHashOps(getKey(session.getId()))).thenReturn(boundHashOperations); - when(expirationRedisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); + when(redisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); redisRepository.save(session); @@ -123,7 +121,7 @@ public class RedisOperationsSessionRepositoryTests { RedisSession session = redisRepository.new RedisSession(new MapSession()); session.setAttribute(attrName, "attrValue"); when(redisOperations.boundHashOps(getKey(session.getId()))).thenReturn(boundHashOperations); - when(expirationRedisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); + when(redisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); redisRepository.save(session); @@ -136,7 +134,7 @@ public class RedisOperationsSessionRepositoryTests { RedisSession session = redisRepository.new RedisSession(new MapSession()); session.removeAttribute(attrName); when(redisOperations.boundHashOps(getKey(session.getId()))).thenReturn(boundHashOperations); - when(expirationRedisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); + when(redisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); redisRepository.save(session); @@ -167,7 +165,7 @@ public class RedisOperationsSessionRepositoryTests { MAX_INACTIVE_ATTR, expected.getMaxInactiveIntervalInSeconds(), LAST_ACCESSED_ATTR, expected.getLastAccessedTime()); when(boundHashOperations.entries()).thenReturn(map); - when(expirationRedisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); + when(redisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); String id = expected.getId(); redisRepository.delete(id); @@ -176,13 +174,13 @@ public class RedisOperationsSessionRepositoryTests { @Test public void deleteNullSession() { - when(expirationRedisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); + when(redisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); when(redisOperations.boundHashOps(anyString())).thenReturn(boundHashOperations); String id = "abc"; redisRepository.delete(id); verify(redisOperations,times(0)).delete(anyString()); - verify(expirationRedisOperations,times(0)).delete(anyString()); + verify(redisOperations,times(0)).delete(anyString()); } @Test @@ -238,7 +236,7 @@ public class RedisOperationsSessionRepositoryTests { public void cleanupExpiredSessions() { String expiredId = "expired-id"; when(redisOperations.boundHashOps(getKey(expiredId))).thenReturn(boundHashOperations); - when(expirationRedisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); + when(redisOperations.boundSetOps(anyString())).thenReturn(boundSetOperations); Set expiredIds = new HashSet(Arrays.asList("expired-key1","expired-key2")); when(boundSetOperations.members()).thenReturn(expiredIds);