有人可以告诉我Spring Security中AuthenticationManagerAuthenticationProvider之间的区别吗?

它们如何使用以及如何调用。据我了解,SecurityFilter将调用AuthenticationManager来认证Authentication对象?但是,AuthenticationProvider在哪里起作用?

谢谢!

最佳答案

我认为AuthenticationManager将持久性用户信息的获取委托(delegate)给一个或多个AuthenticationProvider。身份验证提供者(例如DaoAuthenticationProvider, JaasAuthenticationProvider, LdapAuthenticationProvider, OpenIDAuthenticationProvider)专门用于访问特定的用户信息存储库。
引用手册的this part中提到了其他内容。它说:

您可能想要向ProviderManager注册其他AuthenticationProvider Bean,并且可以使用带有ref属性的元素来执行此操作,其中属性的值是要添加的provider Bean的名称。

换句话说,您可以指定多个AuthenticationProvider,例如,一个在LDAP数据库中查找用户,另一个在SQL数据库中查找。

10-02 10:42