我正在学习Spring Security,我很少有问题UserDetailsService:
1-何时loadUserByUsername实际调用或调用?认证后?每次登录只需一次?
2-登录后,Spring会将实际登录的用户放入httpSession吗?
3-填充集合的推荐方法<GrantedAuthority>是UserDetails什么?
UsernamePasswordAuthenticationFilter成功登录后实现另一个自定义过滤器,如populate?我正在开发基于Spring Security Java的配置.
我创建了自己的MyAuthenticationProvider,我想在ProviderManager(单个实例AuthenticationManager)中注册.
我发现ProviderManager有一个提供商列表,我可以注册我的单一
MyAuthenticationProvider.
这是我配置的一部分:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(MyAuthenticationProvider);
}
}
Run Code Online (Sandbox Code Playgroud)
我发现AuthenticationManagerBuilder了parentAuthenticationManager,defaultUserDetailsService等诸多领域.
我的问题是:
@Autowired注释在哪里添加AuthenticationManagerBuilderauth?是否AuthenticationManagerBuilder已在应用程序上下文中创建?AuthenticationManagerBuilder注入的默认状态是什么?默认情况下,状态我的意思是会不会有一些parentAuthenticationManager,authenticationProvider在S已经注册AuthenticationManagerBuilder?auth.authenticationProvider(MyAuthenticationProvider),这是否意味着我在添加一个提供商AuthenticationManagerBuilder?这是什么意思?摘自Spring文档
configureGlobal方法的名称并不重要.但是,仅在使用@EnableWebSecurity,@ EnableWebMvcSecurity,@ EnableGlobalMethodSecurity或@EnableGlobalAuthentication注释的类中配置AuthenticationManagerBuilder非常重要.否则会产生不可预测的结果.