ConditionalOnMissingBean for ReactiveOAuth2AuthorizedClientManager
This commit is contained in:
committed by
spencergibb
parent
0fe10b119b
commit
fb2b1c1784
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2013-2020 the original author or authors.
|
||||
* Copyright 2013-2021 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -19,6 +19,7 @@ package org.springframework.cloud.gateway.config;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.security.SecurityProperties;
|
||||
import org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration;
|
||||
@@ -43,6 +44,7 @@ import org.springframework.security.web.server.SecurityWebFilterChain;
|
||||
public class GatewayReactiveOAuth2AutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
@ConditionalOnBean(ReactiveClientRegistrationRepository.class)
|
||||
public ReactiveOAuth2AuthorizedClientManager gatewayReactiveOAuth2AuthorizedClientManager(
|
||||
ReactiveClientRegistrationRepository clientRegistrationRepository,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2013-2020 the original author or authors.
|
||||
* Copyright 2013-2021 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -225,6 +225,25 @@ public class GatewayAutoConfigurationTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void gatewayReactiveOAuth2AuthorizedClientManagerBacksOffForCustomBean() {
|
||||
new ReactiveWebApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(ReactiveSecurityAutoConfiguration.class,
|
||||
ReactiveOAuth2ClientAutoConfiguration.class, GatewayReactiveOAuth2AutoConfiguration.class))
|
||||
.withUserConfiguration(TestReactiveOAuth2AuthorizedClientManagerConfig.class)
|
||||
.withPropertyValues(
|
||||
"spring.security.oauth2.client.provider[testprovider].authorization-uri=http://localhost",
|
||||
"spring.security.oauth2.client.provider[testprovider].token-uri=http://localhost/token",
|
||||
"spring.security.oauth2.client.registration[test].provider=testprovider",
|
||||
"spring.security.oauth2.client.registration[test].authorization-grant-type=authorization_code",
|
||||
"spring.security.oauth2.client.registration[test].redirect-uri=http://localhost/redirect",
|
||||
"spring.security.oauth2.client.registration[test].client-id=login-client")
|
||||
.run(context -> {
|
||||
assertThat(context).hasSingleBean(ReactiveOAuth2AuthorizedClientManager.class);
|
||||
assertThat(context).hasBean("myReactiveOAuth2AuthorizedClientManager");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noTokenRelayFilter() {
|
||||
assertThatThrownBy(() -> {
|
||||
@@ -558,4 +577,14 @@ public class GatewayAutoConfigurationTests {
|
||||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
protected static class TestReactiveOAuth2AuthorizedClientManagerConfig {
|
||||
|
||||
@Bean
|
||||
ReactiveOAuth2AuthorizedClientManager myReactiveOAuth2AuthorizedClientManager() {
|
||||
return authorizeRequest -> null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user