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
Configuring
AuthenticationManagerBuilder
in a class without the
EnableGlobalAuthentication
annotation has unpredictable results.