Skip to content

Commit 8dc8ed9

Browse files
mbhavephilwebb
authored andcommitted
Configure oauth2client in Reactive OAuth2 client auto-config
Closes gh-18385
1 parent 5cc443f commit 8dc8ed9

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ static class SecurityWebFilterChainConfiguration {
8686
SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
8787
http.authorizeExchange().anyExchange().authenticated();
8888
http.oauth2Login();
89+
http.oauth2Client();
8990
return http.build();
9091
}
9192

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.time.Duration;
1919
import java.util.ArrayList;
2020
import java.util.List;
21-
import java.util.stream.Collectors;
2221

2322
import org.junit.jupiter.api.Test;
2423
import reactor.core.publisher.Flux;
@@ -46,6 +45,7 @@
4645
import org.springframework.security.oauth2.client.registration.InMemoryReactiveClientRegistrationRepository;
4746
import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
4847
import org.springframework.security.oauth2.client.web.server.AuthenticatedPrincipalServerOAuth2AuthorizedClientRepository;
48+
import org.springframework.security.oauth2.client.web.server.OAuth2AuthorizationCodeGrantWebFilter;
4949
import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizedClientRepository;
5050
import org.springframework.security.oauth2.client.web.server.authentication.OAuth2LoginAuthenticationWebFilter;
5151
import org.springframework.security.oauth2.core.AuthorizationGrantType;
@@ -153,8 +153,10 @@ void configurationRegistersSecurityWebFilterChainBean() { // gh-17949
153153
.withConfiguration(AutoConfigurations.of(ReactiveOAuth2ClientAutoConfiguration.class))
154154
.withUserConfiguration(ReactiveOAuth2AuthorizedClientServiceConfiguration.class,
155155
ServerHttpSecurityConfiguration.class)
156-
.run((context) -> assertThat(getFilters(context, OAuth2LoginAuthenticationWebFilter.class))
157-
.isNotNull());
156+
.run((context) -> {
157+
assertThat(hasFilter(context, OAuth2LoginAuthenticationWebFilter.class)).isTrue();
158+
assertThat(hasFilter(context, OAuth2AuthorizationCodeGrantWebFilter.class)).isTrue();
159+
});
158160
}
159161

160162
@Test
@@ -181,12 +183,11 @@ private void assertWhenClassNotPresent(Class<?> classToFilter) {
181183
}
182184

183185
@SuppressWarnings("unchecked")
184-
private List<WebFilter> getFilters(AssertableReactiveWebApplicationContext context,
185-
Class<? extends WebFilter> filter) {
186+
private boolean hasFilter(AssertableReactiveWebApplicationContext context, Class<? extends WebFilter> filter) {
186187
SecurityWebFilterChain filterChain = (SecurityWebFilterChain) context
187188
.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN);
188189
List<WebFilter> filters = (List<WebFilter>) ReflectionTestUtils.getField(filterChain, "filters");
189-
return filters.stream().filter(filter::isInstance).collect(Collectors.toList());
190+
return filters.stream().anyMatch(filter::isInstance);
190191
}
191192

192193
@Configuration(proxyBeanMethods = false)

0 commit comments

Comments
 (0)