From a4fdc28b2761cafc126b18f0dc8f2cc6146ca980 Mon Sep 17 00:00:00 2001 From: Joe Grandja Date: Fri, 20 Jul 2018 09:41:56 -0400 Subject: [PATCH] Use context.getBean() for ClientRegistrationRepository Fixes gh-5538 --- .../oauth2/client/OAuth2ClientConfigurerUtils.java | 12 +----------- .../OAuth2ClientConfigurationTests.java | 3 +-- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/client/OAuth2ClientConfigurerUtils.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/client/OAuth2ClientConfigurerUtils.java index 1e16a73da0..140ad70c32 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/client/OAuth2ClientConfigurerUtils.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/client/OAuth2ClientConfigurerUtils.java @@ -16,7 +16,6 @@ package org.springframework.security.config.annotation.web.configurers.oauth2.client; import org.springframework.beans.factory.BeanFactoryUtils; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.NoUniqueBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.security.config.annotation.web.HttpSecurityBuilder; @@ -51,16 +50,7 @@ final class OAuth2ClientConfigurerUtils { } private static > ClientRegistrationRepository getClientRegistrationRepositoryBean(B builder) { - Map clientRegistrationRepositoryMap = BeanFactoryUtils.beansOfTypeIncludingAncestors( - builder.getSharedObject(ApplicationContext.class), ClientRegistrationRepository.class); - if (clientRegistrationRepositoryMap.isEmpty()) { - throw new NoSuchBeanDefinitionException(ClientRegistrationRepository.class); - } else if (clientRegistrationRepositoryMap.size() > 1) { - throw new NoUniqueBeanDefinitionException(ClientRegistrationRepository.class, clientRegistrationRepositoryMap.size(), - "Expected single matching bean of type '" + ClientRegistrationRepository.class.getName() + "' but found " + - clientRegistrationRepositoryMap.size() + ": " + StringUtils.collectionToCommaDelimitedString(clientRegistrationRepositoryMap.keySet())); - } - return clientRegistrationRepositoryMap.values().iterator().next(); + return builder.getSharedObject(ApplicationContext.class).getBean(ClientRegistrationRepository.class); } static > OAuth2AuthorizedClientRepository getAuthorizedClientRepository(B builder) { diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configuration/OAuth2ClientConfigurationTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configuration/OAuth2ClientConfigurationTests.java index c2098cd86b..524f4c57d8 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configuration/OAuth2ClientConfigurationTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configuration/OAuth2ClientConfigurationTests.java @@ -171,8 +171,7 @@ public class OAuth2ClientConfigurationTests { public void loadContextWhenClientRegistrationRepositoryRegisteredTwiceThenThrowNoUniqueBeanDefinitionException() { assertThatThrownBy(() -> this.spring.register(ClientRegistrationRepositoryRegisteredTwiceConfig.class).autowire()) .hasRootCauseInstanceOf(NoUniqueBeanDefinitionException.class) - .hasMessageContaining("Expected single matching bean of type '" + ClientRegistrationRepository.class.getName() + - "' but found 2: clientRegistrationRepository1,clientRegistrationRepository2"); + .hasMessageContaining("expected single matching bean but found 2: clientRegistrationRepository1,clientRegistrationRepository2"); } @EnableWebMvc