有人可以告诉我Spring Security中AuthenticationManager
和AuthenticationProvider
之间的区别吗?
它们如何使用以及如何调用。据我了解,SecurityFilter
将调用AuthenticationManager
来认证Authentication
对象?但是,AuthenticationProvider
在哪里起作用?
谢谢!
最佳答案
我认为AuthenticationManager
将持久性用户信息的获取委托(delegate)给一个或多个AuthenticationProvider
。身份验证提供者(例如DaoAuthenticationProvider, JaasAuthenticationProvider, LdapAuthenticationProvider, OpenIDAuthenticationProvider
)专门用于访问特定的用户信息存储库。
引用手册的this part中提到了其他内容。它说:
您可能想要向ProviderManager注册其他AuthenticationProvider Bean,并且可以使用带有ref属性的元素来执行此操作,其中属性的值是要添加的provider Bean的名称。
换句话说,您可以指定多个AuthenticationProvider,例如,一个在LDAP数据库中查找用户,另一个在SQL数据库中查找。