Skip to content

Commit 1113c35

Browse files
committed
ReactiveOAuth2ClientAutoConfiguration backs off for servlet env
Fixes gh-14463
1 parent d4b11c8 commit 1113c35

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/reactive/ReactiveOAuth2ClientAutoConfiguration.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2626
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2727
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
28+
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
29+
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;
2830
import org.springframework.boot.autoconfigure.security.oauth2.client.ClientsConfiguredCondition;
2931
import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientProperties;
3032
import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesRegistrationAdapter;
@@ -52,6 +54,7 @@
5254
@Configuration
5355
@AutoConfigureBefore(ReactiveSecurityAutoConfiguration.class)
5456
@EnableConfigurationProperties(OAuth2ClientProperties.class)
57+
@Conditional(ReactiveOAuth2ClientAutoConfiguration.NonServletApplicationCondition.class)
5558
@ConditionalOnClass({ Flux.class, EnableWebFluxSecurity.class, ClientRegistration.class })
5659
public class ReactiveOAuth2ClientAutoConfiguration {
5760

@@ -89,4 +92,17 @@ public ServerOAuth2AuthorizedClientRepository authorizedClientRepository(
8992
authorizedClientService);
9093
}
9194

95+
static class NonServletApplicationCondition extends NoneNestedConditions {
96+
97+
NonServletApplicationCondition() {
98+
super(ConfigurationPhase.PARSE_CONFIGURATION);
99+
}
100+
101+
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
102+
static class ServletApplicationCondition {
103+
104+
}
105+
106+
}
107+
92108
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/reactive/ReactiveOAuth2ClientAutoConfigurationTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.springframework.boot.autoconfigure.AutoConfigurations;
2525
import org.springframework.boot.test.context.FilteredClassLoader;
2626
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
27+
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
2728
import org.springframework.context.annotation.Bean;
2829
import org.springframework.context.annotation.Configuration;
2930
import org.springframework.context.annotation.Import;
@@ -53,6 +54,15 @@ public class ReactiveOAuth2ClientAutoConfigurationTests {
5354

5455
private static final String REGISTRATION_PREFIX = "spring.security.oauth2.client.registration.login";
5556

57+
@Test
58+
public void autoConfigurationShouldBackOffForServletEnvironments() {
59+
WebApplicationContextRunner contextRunner = new WebApplicationContextRunner()
60+
.withConfiguration(AutoConfigurations
61+
.of(ReactiveOAuth2ClientAutoConfiguration.class));
62+
contextRunner.run((context) -> assertThat(context)
63+
.doesNotHaveBean(ReactiveOAuth2ClientAutoConfiguration.class));
64+
}
65+
5666
@Test
5767
public void clientRegistrationRepositoryBeanShouldNotBeCreatedWhenPropertiesAbsent() {
5868
this.contextRunner.run((context) -> assertThat(context)

0 commit comments

Comments
 (0)