Package org.springframework.security.config.annotation.authentication.configuration

# Annotation Interface EnableGlobalAuthentication

@Retention(RUNTIME) @Target(TYPE) @Documented @Import(AuthenticationConfiguration.class) public @interface EnableGlobalAuthentication
The `EnableGlobalAuthentication` annotation signals that the annotated class can be used to configure a global instance of `AuthenticationManagerBuilder`. For example:

     @Configuration
     @EnableGlobalAuthentication
     public class MyGlobalAuthenticationConfiguration {

            @Bean
            public UserDetailsService userDetailsService() {
                    UserDetails user = User.withDefaultPasswordEncoder()
                            .username("user")
                            .password("password")
                            .roles("USER")
                            .build();
                    UserDetails admin = User.withDefaultPasswordEncoder()
                            .username("admin")
                            .password("password")
                            .roles("ADMIN", "USER")
                            .build();
                    return new InMemoryUserDetailsManager(user, admin);
            }
     }

Annotations that are annotated with `EnableGlobalAuthentication` also signal that the annotated class can be used to configure a global instance of `AuthenticationManagerBuilder`. For example:

     @Configuration
     @EnableWebSecurity
     public class MyWebSecurityConfiguration {

            @Bean
            public UserDetailsService userDetailsService() {
                    UserDetails user = User.withDefaultPasswordEncoder()
                            .username("user")
                            .password("password")
                            .roles("USER")
                            .build();
                    UserDetails admin = User.withDefaultPasswordEncoder()
                            .username("admin")
                            .password("password")
                            .roles("ADMIN", "USER")
                            .build();
                    return new InMemoryUserDetailsManager(user, admin);
            }

            // Possibly more bean methods ...
     }

The following annotations are annotated with `EnableGlobalAuthentication`

- `EnableWebSecurity`
- `EnableWebMvcSecurity`
- `EnableGlobalMethodSecurity`

Configuring `AuthenticationManagerBuilder` in a class without the `EnableGlobalAuthentication` annotation has unpredictable results.

See Also:
  - `EnableWebMvcSecurity`
  - `EnableWebSecurity`
  - `EnableGlobalMethodSecurity`