From d8e3960631f897de583e4dbe21bf5695c7214d2e Mon Sep 17 00:00:00 2001 From: Vedran Pavic Date: Fri, 17 Nov 2017 14:01:15 +0100 Subject: [PATCH 1/2] Improve Spring Session auto-configuration tests Closes gh-11063 --- .../session/AbstractSessionAutoConfigurationTests.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/AbstractSessionAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/AbstractSessionAutoConfigurationTests.java index ea75880d42..ed86e70e81 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/AbstractSessionAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/AbstractSessionAutoConfigurationTests.java @@ -21,11 +21,13 @@ import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplic import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext; import org.springframework.session.ReactiveSessionRepository; import org.springframework.session.SessionRepository; +import org.springframework.session.web.http.SessionRepositoryFilter; +import org.springframework.web.server.session.WebSessionManager; import static org.assertj.core.api.Assertions.assertThat; /** - * Share test utilities for {@link SessionAutoConfiguration} tests. + * Shared test utilities for {@link SessionAutoConfiguration} tests. * * @author Stephane Nicoll */ @@ -33,6 +35,7 @@ public abstract class AbstractSessionAutoConfigurationTests { protected > T validateSessionRepository( AssertableWebApplicationContext context, Class type) { + assertThat(context).hasSingleBean(SessionRepositoryFilter.class); assertThat(context).hasSingleBean(SessionRepository.class); SessionRepository repository = context.getBean(SessionRepository.class); assertThat(repository).as("Wrong session repository type").isInstanceOf(type); @@ -46,6 +49,7 @@ public abstract class AbstractSessionAutoConfigurationTests { protected > T validateSessionRepository( AssertableReactiveWebApplicationContext context, Class type) { + assertThat(context).hasSingleBean(WebSessionManager.class); assertThat(context).hasSingleBean(ReactiveSessionRepository.class); ReactiveSessionRepository repository = context .getBean(ReactiveSessionRepository.class); From 8a3502bddeff9431f0204c59bfa3933e9b1181b3 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 20 Nov 2017 17:12:33 +0000 Subject: [PATCH 2/2] Polish "Improve Spring Session auto-configuration tests" See gh-11063 --- .../boot/autoconfigure/session/MongoSessionConfiguration.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/MongoSessionConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/MongoSessionConfiguration.java index 41c5ddd1db..bf408e3cfc 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/MongoSessionConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/MongoSessionConfiguration.java @@ -27,6 +27,7 @@ import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.session.SessionRepository; +import org.springframework.session.data.mongo.MongoOperationsSessionRepository; import org.springframework.session.data.mongo.config.annotation.web.http.MongoHttpSessionConfiguration; /** @@ -36,7 +37,7 @@ import org.springframework.session.data.mongo.config.annotation.web.http.MongoHt * @author Stephane Nicoll */ @Configuration -@ConditionalOnClass(MongoHttpSessionConfiguration.class) +@ConditionalOnClass({ MongoOperations.class, MongoOperationsSessionRepository.class }) @ConditionalOnMissingBean(SessionRepository.class) @ConditionalOnBean(MongoOperations.class) @Conditional(ServletSessionCondition.class)