Skip to content

Commit 99101ba

Browse files
committed
Remove AuthenticationManagerConfigurationListener
Closes gh-10446
1 parent 9f1ed19 commit 99101ba

File tree

2 files changed

+2
-63
lines changed

2 files changed

+2
-63
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/AuthenticationManagerConfiguration.java

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,13 @@
2121
import org.apache.commons.logging.Log;
2222
import org.apache.commons.logging.LogFactory;
2323

24-
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
25-
import org.springframework.beans.factory.SmartInitializingSingleton;
26-
import org.springframework.beans.factory.annotation.Autowired;
2724
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2825
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
29-
import org.springframework.context.ApplicationContext;
30-
import org.springframework.context.ApplicationListener;
3126
import org.springframework.context.annotation.Bean;
3227
import org.springframework.context.annotation.Configuration;
3328
import org.springframework.core.annotation.Order;
34-
import org.springframework.security.authentication.AuthenticationEventPublisher;
3529
import org.springframework.security.authentication.AuthenticationManager;
3630
import org.springframework.security.authentication.AuthenticationProvider;
37-
import org.springframework.security.authentication.ProviderManager;
3831
import org.springframework.security.config.annotation.ObjectPostProcessor;
3932
import org.springframework.security.core.userdetails.User;
4033
import org.springframework.security.core.userdetails.UserDetailsService;
@@ -52,58 +45,20 @@
5245
*/
5346
@Configuration
5447
@ConditionalOnBean(ObjectPostProcessor.class)
48+
@ConditionalOnMissingBean({ AuthenticationManager.class, AuthenticationProvider.class,
49+
UserDetailsService.class })
5550
@Order(0)
5651
public class AuthenticationManagerConfiguration {
5752

5853
private static final Log logger = LogFactory
5954
.getLog(AuthenticationManagerConfiguration.class);
6055

6156
@Bean
62-
@ConditionalOnMissingBean({ AuthenticationManager.class, AuthenticationProvider.class,
63-
UserDetailsService.class })
6457
public InMemoryUserDetailsManager inMemoryUserDetailsManager() throws Exception {
6558
String password = UUID.randomUUID().toString();
6659
logger.info(String.format("%n%nUsing default security password: %s%n", password));
6760
return new InMemoryUserDetailsManager(
6861
User.withUsername("user").password(password).roles().build());
6962
}
7063

71-
@Bean
72-
public AuthenticationManagerConfigurationListener authenticationManagerConfigurationListener() {
73-
return new AuthenticationManagerConfigurationListener();
74-
}
75-
76-
/**
77-
* {@link ApplicationListener} to autowire the {@link AuthenticationEventPublisher}
78-
* into the {@link AuthenticationManager}.
79-
*/
80-
protected static class AuthenticationManagerConfigurationListener
81-
implements SmartInitializingSingleton {
82-
83-
@Autowired
84-
private AuthenticationEventPublisher eventPublisher;
85-
86-
@Autowired
87-
private ApplicationContext context;
88-
89-
@Override
90-
public void afterSingletonsInstantiated() {
91-
try {
92-
configureAuthenticationManager(
93-
this.context.getBean(AuthenticationManager.class));
94-
}
95-
catch (NoSuchBeanDefinitionException ex) {
96-
// Ignore
97-
}
98-
}
99-
100-
private void configureAuthenticationManager(AuthenticationManager manager) {
101-
if (manager instanceof ProviderManager) {
102-
((ProviderManager) manager)
103-
.setAuthenticationEventPublisher(this.eventPublisher);
104-
}
105-
}
106-
107-
}
108-
10964
}

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/SecurityAutoConfigurationTests.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import org.springframework.security.authentication.TestingAuthenticationProvider;
4848
import org.springframework.security.authentication.TestingAuthenticationToken;
4949
import org.springframework.security.authentication.event.AbstractAuthenticationEvent;
50-
import org.springframework.security.authentication.event.AuthenticationSuccessEvent;
5150
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
5251
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
5352
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@@ -146,21 +145,6 @@ public void testCustomFilterOrder() throws Exception {
146145
DelegatingFilterProxyRegistrationBean.class).getOrder()).isEqualTo(12345);
147146
}
148147

149-
@Test
150-
public void testEventPublisherInjected() throws Exception {
151-
this.context = new AnnotationConfigWebApplicationContext();
152-
this.context.setServletContext(new MockServletContext());
153-
this.context.register(TestAuthenticationManagerConfiguration.class,
154-
SecurityAutoConfiguration.class,
155-
PropertyPlaceholderAutoConfiguration.class);
156-
this.context.refresh();
157-
AuthenticationListener listener = new AuthenticationListener();
158-
this.context.addApplicationListener(listener);
159-
AuthenticationManager manager = this.context.getBean(AuthenticationManager.class);
160-
manager.authenticate(new TestingAuthenticationToken("foo", "wrong"));
161-
assertThat(listener.event).isInstanceOf(AuthenticationSuccessEvent.class);
162-
}
163-
164148
@Test
165149
public void testDefaultUsernamePassword() throws Exception {
166150
this.context = new AnnotationConfigWebApplicationContext();

0 commit comments

Comments
 (0)