diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/reactive/ReactiveSecurityAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/reactive/ReactiveSecurityAutoConfigurationTests.java index 61e1afef1d..5f3bff879b 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/reactive/ReactiveSecurityAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/reactive/ReactiveSecurityAutoConfigurationTests.java @@ -17,12 +17,16 @@ package org.springframework.boot.autoconfigure.security.reactive; import org.junit.jupiter.api.Test; +import reactor.core.publisher.Flux; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; import org.springframework.security.web.server.WebFilterChainProxy; +import org.springframework.web.reactive.config.WebFluxConfigurer; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; @@ -51,6 +55,16 @@ class ReactiveSecurityAutoConfigurationTests { .run((context) -> assertThat(context).getBean(WebFilterChainProxy.class).isNotNull()); } + @Test + void autoConfigurationIsConditionalOnClass() { + this.contextRunner + .withClassLoader(new FilteredClassLoader(Flux.class, EnableWebFluxSecurity.class, + WebFilterChainProxy.class, WebFluxConfigurer.class)) + .withConfiguration(AutoConfigurations.of(ReactiveSecurityAutoConfiguration.class, + ReactiveUserDetailsServiceAutoConfiguration.class)) + .run((context) -> assertThat(context).doesNotHaveBean(WebFilterChainProxy.class)); + } + @Configuration(proxyBeanMethods = false) static class WebFilterChainProxyConfiguration {