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) 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);