@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener ;
import org.springframework.context.ApplicationListener ;
import org.springframework.context.ConfigurableApplicationContext ;
import org.springframework.context.ConfigurableApplicationContext ;
import org.springframework.security.authentication.AuthenticationEventPublisher ;
import org.springframework.security.authentication.AuthenticationEventPublisher ;
import org.springframework.security.authentication.AuthenticationManager ;
import org.springframework.security.authentication.AuthenticationProvider ;
import org.springframework.security.authentication.AuthenticationProvider ;
import org.springframework.security.authentication.DefaultAuthenticationEventPublisher ;
import org.springframework.security.authentication.DefaultAuthenticationEventPublisher ;
import org.springframework.security.authentication.ProviderManager ;
import org.springframework.security.authentication.ProviderManager ;
@ -33,6 +34,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
import org.springframework.security.authentication.event.AbstractAuthenticationEvent ;
import org.springframework.security.authentication.event.AbstractAuthenticationEvent ;
import org.springframework.security.config.test.SpringTestContext ;
import org.springframework.security.config.test.SpringTestContext ;
import org.springframework.security.config.test.SpringTestContextExtension ;
import org.springframework.security.config.test.SpringTestContextExtension ;
import org.springframework.security.config.util.InMemoryXmlWebApplicationContext ;
import org.springframework.security.util.FieldUtils ;
import org.springframework.security.util.FieldUtils ;
import org.springframework.test.web.servlet.MockMvc ;
import org.springframework.test.web.servlet.MockMvc ;
@ -89,6 +91,16 @@ public class AuthenticationManagerBeanDefinitionParserTests {
assertThat ( context . getBeansOfType ( AuthenticationEventPublisher . class ) ) . hasSize ( 1 ) ;
assertThat ( context . getBeansOfType ( AuthenticationEventPublisher . class ) ) . hasSize ( 1 ) ;
}
}
@Test
// gh-8767
public void multipleAuthenticationManagersAndDisableBeanDefinitionOverridingThenNoException ( ) {
InMemoryXmlWebApplicationContext xmlContext = new InMemoryXmlWebApplicationContext (
CONTEXT + '\n' + CONTEXT_MULTI ) ;
xmlContext . setAllowBeanDefinitionOverriding ( false ) ;
ConfigurableApplicationContext context = this . spring . context ( xmlContext ) . getContext ( ) ;
assertThat ( context . getBeansOfType ( AuthenticationManager . class ) ) . hasSize ( 2 ) ;
}
@Test
@Test
public void eventsArePublishedByDefault ( ) throws Exception {
public void eventsArePublishedByDefault ( ) throws Exception {
ConfigurableApplicationContext appContext = this . spring . context ( CONTEXT ) . getContext ( ) ;
ConfigurableApplicationContext appContext = this . spring . context ( CONTEXT ) . getContext ( ) ;