我正在开发Spring Security基于Java的配置。Spring Security如何添加/配置AuthenticationManagerBuilder?
我已经创建了我自己的MyAuthenticationProvider
,我想在ProviderManager
(AuthenticationManager
的单个实例)中注册。
我发现ProviderManager
有我可以注册我的单一 MyAuthenticationProvider
供应商的列表。
这里是我的配置的一部分:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(MyAuthenticationProvider);
}
}
我发现AuthenticationManagerBuilder
有parentAuthenticationManager
,defaultUserDetailsService
等众多领域。
我的问题是:
- 这哪里是
@Autowired
注释从加入AuthenticationManagerBuilder
权威性? 已经在应用程序上下文中创建了AuthenticationManagerBuilder
? - 将被注入的
AuthenticationManagerBuilder
默认状态是什么?默认情况下,我的意思是会有一些parentAuthenticationManager
,authenticationProvider
已经注册在AuthenticationManagerBuilder
? - 如果我添加
auth.authenticationProvider(MyAuthenticationProvider)
,这是否意味着我在AuthenticationManagerBuilder
中再添加一个提供商? 这是什么意思?取自Spring Documentation
configureGlobal方法的名称并不重要。但是, 对于仅在使用@EnableWebSecurity,@EnableWebMvcSecurity, @EnableGlobalMethodSecurity或@EnableGlobalAuthentication注释的类 中配置AuthenticationManagerBuilder非常重要。做 否则有不可预知的结果。