如何在Spring Security中手动更改身份验证提供程序

时间:2018-09-20 20:23:19

标签: spring-boot spring-security

身份验证提供者设置为

@Override
    public void configure(AuthenticationManagerBuilder auth) {
        auth.authenticationProvider(authenticationProvider);
    }

是否可以在运行时在SpringBoot中更改身份验证提供程序?

1 个答案:

答案 0 :(得分:0)

配置的AuthenticationManager的实例最终将传递给org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter的实现之一。该基本过滤器类具有用于AuthenticationManager的设置器,因此,是的,只要您有权访问已配置的身份验证过滤器,就可以在运行时替换AuthenticationManager

但是我怀疑这是一个好主意,因为您可能有多个身份验证过滤器,其中的AuthenticationManager也应替换。此外,Spring不会期望这种行为,因此最终会导致配置不一致。

根据您的需求,我建议提供AuthenticationManager的自定义实现,以根据某些情况相应地更改其逻辑。