身份验证提供者设置为
@Override
public void configure(AuthenticationManagerBuilder auth) {
auth.authenticationProvider(authenticationProvider);
}
是否可以在运行时在SpringBoot中更改身份验证提供程序?
答案 0 :(得分:0)
配置的AuthenticationManager
的实例最终将传递给org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter
的实现之一。该基本过滤器类具有用于AuthenticationManager
的设置器,因此,是的,只要您有权访问已配置的身份验证过滤器,就可以在运行时替换AuthenticationManager
。
但是我怀疑这是一个好主意,因为您可能有多个身份验证过滤器,其中的AuthenticationManager
也应替换。此外,Spring不会期望这种行为,因此最终会导致配置不一致。
根据您的需求,我建议提供AuthenticationManager
的自定义实现,以根据某些情况相应地更改其逻辑。