config/src/main/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfiguration.java
protected AuthenticationManager authenticationManager() throws Exception {
		if (authenticationManager == null) {
			DefaultAuthenticationEventPublisher eventPublisher = objectPostProcessor
					.postProcess(new DefaultAuthenticationEventPublisher());
			auth = new AuthenticationManagerBuilder(objectPostProcessor);
			auth.authenticationEventPublisher(eventPublisher);
			configure(auth);
			if (disableAuthenticationRegistry) {
				authenticationManager = getAuthenticationConfiguration()
						.getAuthenticationManager();
			}
			else {
				authenticationManager = auth.build();
			}
		}
		return authenticationManager;
	}
protected AuthenticationManager authenticationManager() throws Exception {
		if (authenticationManager == null) {
			DefaultAuthenticationEventPublisher eventPublisher = objectPostProcessor
					.postProcess(new DefaultAuthenticationEventPublisher());
			auth = new AuthenticationManagerBuilder(objectPostProcessor);
			auth.authenticationEventPublisher(eventPublisher);
			configure(auth);
			if (disableAuthenticationRegistry) {
				authenticationManager = getAuthenticationConfiguration()
						.getAuthenticationManager();
			}
			else {
				authenticationManager = auth.build();
			}
		}
		return authenticationManager;
	}
protected AuthenticationManager authenticationManager ( ) throws Exception { if ( authenticationManager == null ) { DefaultAuthenticationEventPublisher eventPublisher = objectPostProcessor . postProcess ( new DefaultAuthenticationEventPublisher ( ) ) ; auth = new AuthenticationManagerBuilder ( objectPostProcessor ) ; auth . authenticationEventPublisher ( eventPublisher ) ; configure ( auth ) ; if ( disableAuthenticationRegistry ) { authenticationManager = getAuthenticationConfiguration ( ) . getAuthenticationManager ( ) ; } else { authenticationManager = auth . build ( ) ; } } return authenticationManager ; }
Allows providing a custom {@link AuthenticationManager}. The default is to use any
authentication mechanisms registered by
{@link #configure(AuthenticationManagerBuilder)}. If
{@link #configure(AuthenticationManagerBuilder)} was not overridden, then an
{@link AuthenticationManager} is attempted to be autowired by type.

@return the {@link AuthenticationManager} to use
Allows providing a custom { @link AuthenticationManager } . The default is to use any authentication mechanisms registered by { @link #configure ( AuthenticationManagerBuilder ) } . If { @link #configure ( AuthenticationManagerBuilder ) } was not overridden then an { @link AuthenticationManager } is attempted to be autowired by type .