Merge pull request #11084 from vpavic:align-session-2.0

* pr/11084:
  Polish "Align Session auto-config with Redis namespace config support"
  Align Session auto-config with Redis namespace config support
This commit is contained in:
Stephane Nicoll 2017-11-20 11:30:48 +01:00
commit 578c64644f
4 changed files with 10 additions and 7 deletions

View File

@ -33,7 +33,7 @@ public class RedisSessionProperties {
/**
* Namespace for keys used to store sessions.
*/
private String namespace = "";
private String namespace = "spring:session";
/**
* Sessions flush mode.

View File

@ -41,6 +41,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*
* @author Stephane Nicoll
* @author Andy Wilkinson
* @author Vedran Pavic
*/
public class ReactiveSessionAutoConfigurationRedisTests
extends AbstractSessionAutoConfigurationTests {
@ -56,7 +57,7 @@ public class ReactiveSessionAutoConfigurationRedisTests
this.contextRunner.withPropertyValues("spring.session.store-type=redis")
.withConfiguration(AutoConfigurations.of(RedisAutoConfiguration.class,
RedisReactiveAutoConfiguration.class))
.run(validateSpringSessionUsesRedis(RedisFlushMode.ON_SAVE));
.run(validateSpringSessionUsesRedis("spring:session:", RedisFlushMode.ON_SAVE));
}
@Test
@ -66,7 +67,7 @@ public class ReactiveSessionAutoConfigurationRedisTests
ReactiveMongoOperationsSessionRepository.class))
.withConfiguration(AutoConfigurations.of(RedisAutoConfiguration.class,
RedisReactiveAutoConfiguration.class))
.run(validateSpringSessionUsesRedis(RedisFlushMode.ON_SAVE));
.run(validateSpringSessionUsesRedis("spring:session:", RedisFlushMode.ON_SAVE));
}
@Test
@ -77,16 +78,18 @@ public class ReactiveSessionAutoConfigurationRedisTests
.withPropertyValues("spring.session.store-type=redis",
"spring.session.redis.namespace=foo",
"spring.session.redis.flush-mode=immediate")
.run(validateSpringSessionUsesRedis(RedisFlushMode.IMMEDIATE));
.run(validateSpringSessionUsesRedis("foo:", RedisFlushMode.IMMEDIATE));
}
private ContextConsumer<AssertableReactiveWebApplicationContext> validateSpringSessionUsesRedis(
RedisFlushMode flushMode) {
String namespace, RedisFlushMode flushMode) {
return (context) -> {
System.out.println(new ConditionEvaluationReportMessage(
context.getBean(ConditionEvaluationReport.class)));
ReactiveRedisOperationsSessionRepository repository = validateSessionRepository(
context, ReactiveRedisOperationsSessionRepository.class);
assertThat(new DirectFieldAccessor(repository).getPropertyValue("namespace"))
.isEqualTo(namespace);
assertThat(new DirectFieldAccessor(repository)
.getPropertyValue("redisFlushMode")).isEqualTo(flushMode);
};

View File

@ -78,7 +78,7 @@ public class SessionAutoConfigurationRedisTests
"spring.session.redis.namespace=foo",
"spring.session.redis.flush-mode=immediate",
"spring.session.redis.cleanup-cron=0 0 12 * * *")
.run(validateSpringSessionUsesRedis("spring:session:foo:event:created:",
.run(validateSpringSessionUsesRedis("foo:event:created:",
RedisFlushMode.IMMEDIATE, "0 0 12 * * *"));
}

View File

@ -431,7 +431,7 @@ content into your application; rather pick only the properties that you need.
# SPRING SESSION REDIS ({sc-spring-boot-autoconfigure}/session/RedisSessionProperties.{sc-ext}[RedisSessionProperties])
spring.session.redis.cleanup-cron=0 * * * * * # Cron expression for expired session cleanup job.
spring.session.redis.flush-mode=on-save # Sessions flush mode.
spring.session.redis.namespace= # Namespace for keys used to store sessions.
spring.session.redis.namespace=spring:session # Namespace for keys used to store sessions.
# SPRING SOCIAL ({sc-spring-boot-autoconfigure}/social/SocialWebAutoConfiguration.{sc-ext}[SocialWebAutoConfiguration])
spring.social.auto-connection-views=false # Enable the connection status view for supported providers.