diff --git a/module/spring-boot-security-oauth2-client/src/main/java/org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientConfigurations.java b/module/spring-boot-security-oauth2-client/src/main/java/org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientConfigurations.java index fc8572d3035..47d39e4b496 100644 --- a/module/spring-boot-security-oauth2-client/src/main/java/org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientConfigurations.java +++ b/module/spring-boot-security-oauth2-client/src/main/java/org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientConfigurations.java @@ -41,10 +41,10 @@ class OAuth2ClientConfigurations { @Configuration(proxyBeanMethods = false) @ConditionalOnOAuth2ClientRegistrationProperties @EnableConfigurationProperties(OAuth2ClientProperties.class) - @ConditionalOnMissingBean(ClientRegistrationRepository.class) static class ClientRegistrationRepositoryConfiguration { @Bean + @ConditionalOnMissingBean(ClientRegistrationRepository.class) InMemoryClientRegistrationRepository clientRegistrationRepository(OAuth2ClientProperties properties) { List registrations = new ArrayList<>( new OAuth2ClientPropertiesMapper(properties).asClientRegistrations().values()); diff --git a/module/spring-boot-security-oauth2-client/src/test/java/org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientAutoConfigurationTests.java b/module/spring-boot-security-oauth2-client/src/test/java/org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientAutoConfigurationTests.java index a93abc4b3b6..e28c9b942fb 100644 --- a/module/spring-boot-security-oauth2-client/src/test/java/org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientAutoConfigurationTests.java +++ b/module/spring-boot-security-oauth2-client/src/test/java/org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientAutoConfigurationTests.java @@ -82,6 +82,19 @@ class OAuth2ClientAutoConfigurationTests { .run((context) -> assertThat(context).hasSingleBean(OAuth2AuthorizedClientService.class)); } + @Test + void propertiesBeanIsCreatedWithUserDefinedClientRegistrationRepository() { + this.contextRunner + .withPropertyValues(REGISTRATION_PREFIX + ".foo.client-id=abcd", + REGISTRATION_PREFIX + ".foo.client-secret=secret", REGISTRATION_PREFIX + ".foo.provider=github") + .withBean(ClientRegistrationRepository.class, + () -> new InMemoryClientRegistrationRepository(getClientRegistration("test", "test"))) + .run((context) -> { + assertThat(context).hasSingleBean(OAuth2ClientProperties.class); + assertThat(context).hasSingleBean(OAuth2AuthorizedClientService.class); + }); + } + private ClientRegistration getClientRegistration(String id, String userInfoUri) { ClientRegistration.Builder builder = ClientRegistration.withRegistrationId(id); builder.clientName("foo")