UserDetailsService not created when OAuth configured
Fixes gh-10531
This commit is contained in:
parent
777cbe3c54
commit
3a95a7531a
|
|
@ -61,6 +61,7 @@ public class AuthenticationManagerConfiguration {
|
|||
.getLog(AuthenticationManagerConfiguration.class);
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(type = "org.springframework.security.oauth2.client.registration.ClientRegistrationRepository")
|
||||
public InMemoryUserDetailsManager inMemoryUserDetailsManager(
|
||||
SecurityProperties properties,
|
||||
ObjectProvider<PasswordEncoder> passwordEncoder) throws Exception {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import org.springframework.context.annotation.Configuration;
|
|||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
|
||||
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
|
@ -68,6 +69,14 @@ public class AuthenticationManagerConfigurationTests {
|
|||
testPasswordEncoding(TestConfigWithPasswordEncoder.class, "secret", "secret");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void userDetailsServiceWhenClientRegistrationRepositoryBeanPresent() {
|
||||
this.contextRunner
|
||||
.withUserConfiguration(TestConfigWithClientRegistrationRepository.class,
|
||||
AuthenticationManagerConfiguration.class)
|
||||
.run(((context) -> assertThat(context).doesNotHaveBean(InMemoryUserDetailsManager.class)));
|
||||
}
|
||||
|
||||
private void testPasswordEncoding(Class<?> configClass, String providedPassword,
|
||||
String expectedPassword) {
|
||||
this.contextRunner
|
||||
|
|
@ -101,4 +110,15 @@ public class AuthenticationManagerConfigurationTests {
|
|||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@Import(TestSecurityConfiguration.class)
|
||||
protected static class TestConfigWithClientRegistrationRepository {
|
||||
|
||||
@Bean
|
||||
public ClientRegistrationRepository clientRegistrationRepository() {
|
||||
return mock(ClientRegistrationRepository.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue