|
|
|
@ -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 {
|
|
|
|
|
|
|
|
|
|