所以我正在研究Spring Security的实现。我遇到了一段我无法理解的代码。因此,根据文档,当我们要自定义Spring使用的AuthenticationManager时,需要重写以下方法。protected void configure(AuthenticationManagerBuilder auth) throws java.lang.Exception
我的问题是谁在调用此方法并在此处传递AuthenticationManagerBuilder实例。
我看到的工作示例不会创建/公开任何AuthenticationManagerBuilder bean。
另外,我在文档中看到以下内容,
受保护的AuthenticationManager authenticationManager()
引发java.lang.Exception获取要使用的AuthenticationManager。
默认值
策略是如果configure(AuthenticationManagerBuilder)方法是
重写以使用传入的AuthenticationManagerBuilder。
否则,请按类型自动连接AuthenticationManager。
重写的方法是一个无效方法,这可能就是为什么我对正在做的事情/应该做的事情感到更加困惑的原因。
任何帮助/指针都受到高度赞赏。我知道它有效,但似乎无法弄清楚。
非常感谢。
最佳答案
假设以下是您遇到的代码
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(MyAuthenticationProvider);
}
}
注意
WebSecurityConfigurerAdapter提供了方便的基础
用于创建WebSecurityConfigurer实例的类。
WebSecurityConfigurerAdapter实现是一个
Configuration,因为它带有@EnableWebSecurity注释
这里
@EnableWebSecurity使用@EnableGlobalAuthentication进行元注释
@Retention(value=RUNTIME)
@Target(value=TYPE)
@Documented
@Import(value={WebSecurityConfiguration.class,org.springframework.security.config.annotation.web.configuration.SpringWebMvcImportSelector.class,org.springframework.security.config.annotation.web.configuration.OAuth2ImportSelector.class})
@EnableGlobalAuthentication
@Configuration
public @interface EnableWebSecurity
和@EnableGlobalAuthentication导入AuthenticationConfiguration
@Retention(value=RUNTIME)
@Target(value=TYPE)
@Documented
@Import(value=AuthenticationConfiguration.class)
@Configuration
public @interface EnableGlobalAuthentication
AuthenticationConfiguration具有以下代码,用于将AuthenticationManagerBuilder注册为Bean
@Bean
public AuthenticationManagerBuilder authenticationManagerBuilder(
ObjectPostProcessor<Object> objectPostProcessor, ApplicationContext context) {
...
}
关于java - Spring Security:谁将AuthenticationManagerBuilder传递给WebSecurityConfigurerAdapter配置方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59118739/