可能是一个新手问题。我想注入CustomAuthenticationProviderInside Spring AuthenticationManager。我在网上发现了很多这样的例子:
<authentication-manager>
<authentication-provider ref="CustomAuthenticationProvider"/>
</authentication-manager>
如何使用Java Config类做到这一点?
答案 0 :(得分:0)
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()));
}