mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-05-31 01:02:14 +00:00
Use context.getBean() for ClientRegistrationRepository
Fixes gh-5538
This commit is contained in:
parent
9a144d742e
commit
a4fdc28b27
@ -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 <B extends HttpSecurityBuilder<B>> ClientRegistrationRepository getClientRegistrationRepositoryBean(B builder) {
|
||||
Map<String, ClientRegistrationRepository> 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 <B extends HttpSecurityBuilder<B>> OAuth2AuthorizedClientRepository getAuthorizedClientRepository(B builder) {
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user