我正在学习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
注释在哪里添加AuthenticationManagerBuilder
auth?是否AuthenticationManagerBuilder
已在应用程序上下文中创建?AuthenticationManagerBuilder
注入的默认状态是什么?默认情况下,状态我的意思是会不会有一些parentAuthenticationManager
,authenticationProvider
在S已经注册AuthenticationManagerBuilder
?auth.authenticationProvider(MyAuthenticationProvider)
,这是否意味着我在添加一个提供商AuthenticationManagerBuilder
?这是什么意思?摘自Spring文档
configureGlobal方法的名称并不重要.但是,仅在使用@EnableWebSecurity,@ EnableWebMvcSecurity,@ EnableGlobalMethodSecurity或@EnableGlobalAuthentication注释的类中配置AuthenticationManagerBuilder非常重要.否则会产生不可预测的结果.