Spring提供了一个AuthenticationManager的默认实现,它是ProviderManager。 ProviderManager中有一个构造函数这需要身份验证提供的阵列通过扩展的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安全配置
public ProviderManager(List<AuthenticationProvider> providers) {
this(providers, null);
}
如果你想你可以用它玩,你可以添加自定义的认证管理器。
@Override
protected AuthenticationManager authenticationManager() throws Exception {
return new MyAuthenticationManager(Arrays.asList(new CustomAuthenticationProvider()));
}
请参考CustomerAuthenticationManager示例。 http://stackoverflow.com/questions/31826233/custom-authentication-manager-with-spring-security-and-java-configuration –