From 38de434158c246a60791dd3a40cf77f9ba740d6b Mon Sep 17 00:00:00 2001 From: Vedran Pavic Date: Mon, 20 Aug 2018 07:23:23 +0200 Subject: [PATCH] Add support for @SpringSessionRedisOperations in reactive Redis repository Closes gh-1164 --- ...ctiveRedisOperationsSessionRepository.java | 4 +++ .../RedisWebSessionConfigurationTests.java | 29 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisOperationsSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisOperationsSessionRepository.java index 26c8f513..f8092e29 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisOperationsSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisOperationsSessionRepository.java @@ -118,6 +118,10 @@ public class ReactiveRedisOperationsSessionRepository implements this.redisFlushMode = redisFlushMode; } + public ReactiveRedisOperations getSessionRedisOperations() { + return this.sessionRedisOperations; + } + @Override public Mono createSession() { return Mono.defer(() -> { diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfigurationTests.java index f0e2c7a9..f462e25e 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfigurationTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfigurationTests.java @@ -32,6 +32,7 @@ import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.session.data.redis.ReactiveRedisOperationsSessionRepository; import org.springframework.session.data.redis.RedisFlushMode; import org.springframework.session.data.redis.config.annotation.SpringSessionRedisConnectionFactory; +import org.springframework.session.data.redis.config.annotation.SpringSessionRedisOperations; import org.springframework.test.util.ReflectionTestUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -72,6 +73,22 @@ public class RedisWebSessionConfigurationTests { assertThat(repository).isNotNull(); } + @Test + public void springSessionRedisOperationsResolvingConfiguration() { + registerAndRefresh(RedisConfig.class, + SpringSessionRedisOperationsResolvingConfig.class); + + ReactiveRedisOperationsSessionRepository repository = this.context + .getBean(ReactiveRedisOperationsSessionRepository.class); + assertThat(repository).isNotNull(); + ReactiveRedisOperations springSessionRedisOperations = this.context + .getBean(SpringSessionRedisOperationsResolvingConfig.class) + .getSpringSessionRedisOperations(); + assertThat(springSessionRedisOperations).isNotNull(); + assertThat((ReactiveRedisOperations) ReflectionTestUtils.getField(repository, + "sessionRedisOperations")).isEqualTo(springSessionRedisOperations); + } + @Test public void customNamespace() { registerAndRefresh(RedisConfig.class, CustomNamespaceConfig.class); @@ -233,6 +250,18 @@ public class RedisWebSessionConfigurationTests { } + @EnableRedisWebSession + static class SpringSessionRedisOperationsResolvingConfig { + + @SpringSessionRedisOperations + private ReactiveRedisOperations springSessionRedisOperations; + + public ReactiveRedisOperations getSpringSessionRedisOperations() { + return this.springSessionRedisOperations; + } + + } + @EnableRedisWebSession(redisNamespace = REDIS_NAMESPACE) static class CustomNamespaceConfig {