繁体   English   中英

Spring Security自定义在AuthenticationManager中注入AuthenticationProvider

[英]spring security custom inject AuthenticationProvider inside AuthenticationManager

可能是一个新手问题。 我想在Spring AuthenticationManager中注入CustomAuthenticationProviderInside。 我在网上找到了很多例子来做到这一点:

<authentication-manager>

    <authentication-provider ref="CustomAuthenticationProvider"/>

</authentication-manager>

如何使用Java Config类做到这一点?

Spring提供了AuthenticationManager的默认实现之一,即ProviderManager。 ProviderManager具有一个构造函数,该构造函数采用一组身份验证提供程序

public ProviderManager(List<AuthenticationProvider> providers) {
    this(providers, null);
}

如果您愿意,可以通过扩展ProviderManager来玩

public class MyAuthenticationManager extends ProviderManager implements AuthenticationManager{

public MyAuthenticationManager(List<AuthenticationProvider> providers) {
    super(providers);
    providers.forEach(e->System.out.println("Registered providers "+e.getClass().getName()));
   }
}

然后,在Java安全配置中,您可以添加自定义身份验证管理器。

@Override
protected AuthenticationManager authenticationManager() throws Exception {
    return new MyAuthenticationManager(Arrays.asList(new CustomAuthenticationProvider()));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM