在一些spring安全代码中,我可以看到:
@Override
public void configure(AuthenticationManagerBuilder auth) {
auth.userDetailsService(myUserDetailsService);
}
据我了解,, AuthenticationManager
管理一个 AuthenticationProvider
各 AuthenticationProvider
有自己的 UserDetailsService
实施
这是上面的代码所不理解的:当写的时候 auth.userDetailsService(...)
,其中 AuthenticationProvider
使用了什么?是否创建了一个新的?因为两者之间有直接的联系 AuthenticationManager
及 UserDetailsService
,但关于 AuthenticationProvider
1条答案
按热度按时间vqlkdk9b1#
当你这样做的时候
auth.userDetailsService(myUserDetailsService);
您正在添加一个新的DaoAuthenticationProvider
用你的UserDetailsService
假如更具体地说,当调用
AuthenticationManagerBuilder#userDetailsService
方法,您正在设置defaultUserDetailsService
属性并应用类型的配置DaoAuthenticationConfigurer
.然后,此配置将添加
DaoAuthenticationProvider
在名单上AuthenticationProvider
这是可以使用的。您可以在
AuthenticationManagerBuilder
源代码。