Skip to content

Commit 964ccbb

Browse files
committed
Revert "Do not enable WebFlux security unless other configuration is active"
This reverts commit beba1f1. See gh-38713
1 parent 3ac9c44 commit 964ccbb

File tree

5 files changed

+12
-35
lines changed

5 files changed

+12
-35
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/resource/reactive/ReactiveOAuth2ResourceServerAutoConfiguration.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -40,9 +40,7 @@
4040
@ConditionalOnClass({ EnableWebFluxSecurity.class })
4141
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
4242
@Import({ ReactiveOAuth2ResourceServerConfiguration.JwtConfiguration.class,
43-
ReactiveOAuth2ResourceServerConfiguration.OpaqueTokenConfiguration.class,
44-
ReactiveOAuth2ResourceServerConfiguration.JwtWebSecurityConfiguration.class,
45-
ReactiveOAuth2ResourceServerConfiguration.OpaqueTokenWebSecurityConfiguration.class })
43+
ReactiveOAuth2ResourceServerConfiguration.OpaqueTokenConfiguration.class })
4644
public class ReactiveOAuth2ResourceServerAutoConfiguration {
4745

4846
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -24,39 +24,27 @@
2424
import org.springframework.security.oauth2.server.resource.introspection.ReactiveOpaqueTokenIntrospector;
2525

2626
/**
27-
* Configuration classes for OAuth2 Resource Server. These should be {@code @Import}ed in
28-
* a regular auto-configuration class to guarantee their order of execution.
27+
* Configuration classes for OAuth2 Resource Server These should be {@code @Import} in a
28+
* regular auto-configuration class to guarantee their order of execution.
2929
*
3030
* @author Madhura Bhave
3131
*/
3232
class ReactiveOAuth2ResourceServerConfiguration {
3333

3434
@Configuration(proxyBeanMethods = false)
3535
@ConditionalOnClass({ BearerTokenAuthenticationToken.class, ReactiveJwtDecoder.class })
36-
@Import(ReactiveOAuth2ResourceServerJwkConfiguration.JwtConfiguration.class)
36+
@Import({ ReactiveOAuth2ResourceServerJwkConfiguration.JwtConfiguration.class,
37+
ReactiveOAuth2ResourceServerJwkConfiguration.WebSecurityConfiguration.class })
3738
static class JwtConfiguration {
3839

3940
}
4041

41-
@Configuration(proxyBeanMethods = false)
42-
@ConditionalOnClass({ BearerTokenAuthenticationToken.class, ReactiveJwtDecoder.class })
43-
@Import(ReactiveOAuth2ResourceServerJwkConfiguration.WebSecurityConfiguration.class)
44-
static class JwtWebSecurityConfiguration {
45-
46-
}
47-
4842
@Configuration(proxyBeanMethods = false)
4943
@ConditionalOnClass({ BearerTokenAuthenticationToken.class, ReactiveOpaqueTokenIntrospector.class })
50-
@Import(ReactiveOAuth2ResourceServerOpaqueTokenConfiguration.OpaqueTokenIntrospectionClientConfiguration.class)
44+
@Import({ ReactiveOAuth2ResourceServerOpaqueTokenConfiguration.OpaqueTokenIntrospectionClientConfiguration.class,
45+
ReactiveOAuth2ResourceServerOpaqueTokenConfiguration.WebSecurityConfiguration.class })
5146
static class OpaqueTokenConfiguration {
5247

5348
}
5449

55-
@Configuration(proxyBeanMethods = false)
56-
@ConditionalOnClass({ BearerTokenAuthenticationToken.class, ReactiveOpaqueTokenIntrospector.class })
57-
@Import(ReactiveOAuth2ResourceServerOpaqueTokenConfiguration.WebSecurityConfiguration.class)
58-
static class OpaqueTokenWebSecurityConfiguration {
59-
60-
}
61-
6250
}

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/resource/reactive/ReactiveOAuth2ResourceServerJwkConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,11 @@ SupplierReactiveJwtDecoder jwtDecoderByIssuerUri(
164164
}
165165

166166
@Configuration(proxyBeanMethods = false)
167-
@ConditionalOnBean(ReactiveJwtDecoder.class)
168167
@ConditionalOnMissingBean(SecurityWebFilterChain.class)
169168
static class WebSecurityConfiguration {
170169

171170
@Bean
171+
@ConditionalOnBean(ReactiveJwtDecoder.class)
172172
SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http, ReactiveJwtDecoder jwtDecoder) {
173173
http.authorizeExchange((exchanges) -> exchanges.anyExchange().authenticated());
174174
http.oauth2ResourceServer((server) -> customDecoder(server, jwtDecoder));

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/resource/reactive/ReactiveOAuth2ResourceServerOpaqueTokenConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ SpringReactiveOpaqueTokenIntrospector opaqueTokenIntrospector(OAuth2ResourceServ
5656

5757
@Configuration(proxyBeanMethods = false)
5858
@ConditionalOnMissingBean(SecurityWebFilterChain.class)
59-
@ConditionalOnBean(ReactiveOpaqueTokenIntrospector.class)
6059
static class WebSecurityConfiguration {
6160

6261
@Bean
62+
@ConditionalOnBean(ReactiveOpaqueTokenIntrospector.class)
6363
SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
6464
http.authorizeExchange((exchanges) -> exchanges.anyExchange().authenticated());
6565
http.oauth2ResourceServer((resourceServer) -> resourceServer.opaqueToken(withDefaults()));

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/reactive/ReactiveOAuth2ResourceServerAutoConfigurationTests.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@
4343
import reactor.core.publisher.Mono;
4444

4545
import org.springframework.boot.autoconfigure.AutoConfigurations;
46-
import org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener;
47-
import org.springframework.boot.logging.LogLevel;
4846
import org.springframework.boot.test.context.FilteredClassLoader;
4947
import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplicationContext;
5048
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
@@ -75,7 +73,6 @@
7573
import org.springframework.security.oauth2.server.resource.introspection.ReactiveOpaqueTokenIntrospector;
7674
import org.springframework.security.web.server.MatcherSecurityWebFilterChain;
7775
import org.springframework.security.web.server.SecurityWebFilterChain;
78-
import org.springframework.security.web.server.WebFilterChainProxy;
7976
import org.springframework.security.web.server.authentication.AuthenticationWebFilter;
8077
import org.springframework.test.util.ReflectionTestUtils;
8178
import org.springframework.web.server.WebFilter;
@@ -119,16 +116,10 @@ void cleanup() throws Exception {
119116
}
120117
}
121118

122-
@Test
123-
void autoConfigurationDoesNotEnableWebSecurityWithoutJwtDecoderOrTokenIntrospector() {
124-
this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(WebFilterChainProxy.class));
125-
}
126-
127119
@Test
128120
void autoConfigurationShouldConfigureResourceServer() {
129121
this.contextRunner
130122
.withPropertyValues("spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://jwk-set-uri.com")
131-
.withInitializer(ConditionEvaluationReportLoggingListener.forLogLevel(LogLevel.INFO))
132123
.run((context) -> {
133124
assertThat(context).hasSingleBean(NimbusReactiveJwtDecoder.class);
134125
assertFilterConfiguredWithJwtAuthenticationManager(context);
@@ -394,7 +385,7 @@ void autoConfigurationWhenSecurityWebFilterChainConfigPresentShouldNotAddOne() {
394385

395386
@Test
396387
void autoConfigurationWhenIntrospectionUriAvailableShouldConfigureIntrospectionClient() {
397-
this.contextRunner.withInitializer(ConditionEvaluationReportLoggingListener.forLogLevel(LogLevel.INFO))
388+
this.contextRunner
398389
.withPropertyValues(
399390
"spring.security.oauth2.resourceserver.opaquetoken.introspection-uri=https://check-token.com",
400391
"spring.security.oauth2.resourceserver.opaquetoken.client-id=my-client-id",

0 commit comments

Comments
 (0)