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.