-
Notifications
You must be signed in to change notification settings - Fork 41.4k
Description
Not 100% sure if this is a bug or intended behaviour, so please close if it's not a bug.
In Spring Boot 3.4.x this would work:
@Bean
@ConditionalOnMissingBean({ClientRegistrationRepository.class})
InMemoryClientRegistrationRepository clientRegistrationRepository(
OAuth2ClientProperties properties) {
List<ClientRegistration> registrations = new OAuth2ClientPropertiesMapper(properties).asClientRegistrations().values().stream().toList();
return new InMemoryClientRegistrationRepository(registrations);
}
(the actual use case is the workaround described in spring-projects/spring-security#7695 (comment))
With Spring Boot 3.5.0 I get this error:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method clientRegistrationRepository in xxx.ClientRegistrationConfig required a bean of type 'org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientProperties' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientProperties' in your configuration.
I need to add @EnableConfigurationProperties({OAuth2ClientProperties.class})
in my app for this to still work. I think in spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientConfigurations.java
the OAuth2ClientProperties
are only created when there is no custom ClientRegistrationRepository
I would expect OAuth2ClientProperties to exist if they are configured in application.yaml
, even when I create a custom client registration repository.