Commit 3a95a753 authored by Madhura Bhave's avatar Madhura Bhave

UserDetailsService not created when OAuth configured

Fixes gh-10531
parent 777cbe3c
......@@ -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);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment