我正在使用Spring Security
关于配置,我通过一些来源看到了以下两种方法:
一:
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("someuser").password("somepassword").authorities("ROLE_ADMIN", "ROLE_USER");
//more as above
}
和
两个
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService());
}
@Bean
@Override
public UserDetailsService userDetailsService() {
InMemoryUserDetailsManager inMemoryUserDetailsManager = new InMemoryUserDetailsManager();
inMemoryUserDetailsManager.createUser(User.withUsername("someuser").password("somepassword").authorities("ROLE_ADMIN", "ROLE_USER").build());
//more as above
return inMemoryUserDetailsManager;
}
直到这里,目的或目标是为内存中的某些用户创建开发。实际上 工作。因此:
答案 0 :(得分:2)
第二种变体更通用,因此更灵活,并使用org.springframework.security.config.annotation.authentication.configurers.userdetails.DaoAuthenticationConfigurer
注册。它接受您选择内存中标准实现的任何UserDetailsProvider。
第一个更紧凑,因为InMemoryUserDetailsManagerConfigurer
是标准的。
但最终结果是相同的,因为org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder#apply
被调用:它接受三种类型:DAO(你的第二个),内存中(你的第一个)和JDBC配置器。