Spring Security :authenticationprovider和userdetailsservice之间的链接

oiopk7p5  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(375)

在一些spring安全代码中,我可以看到:

@Override
public void configure(AuthenticationManagerBuilder auth) {
    auth.userDetailsService(myUserDetailsService);
}

据我了解,, AuthenticationManager 管理一个 AuthenticationProviderAuthenticationProvider 有自己的 UserDetailsService 实施
这是上面的代码所不理解的:当写的时候 auth.userDetailsService(...) ,其中 AuthenticationProvider 使用了什么?是否创建了一个新的?因为两者之间有直接的联系 AuthenticationManagerUserDetailsService ,但关于 AuthenticationProvider

vqlkdk9b

vqlkdk9b1#

当你这样做的时候 auth.userDetailsService(myUserDetailsService); 您正在添加一个新的 DaoAuthenticationProvider 用你的 UserDetailsService 假如
更具体地说,当调用 AuthenticationManagerBuilder#userDetailsService 方法,您正在设置 defaultUserDetailsService 属性并应用类型的配置 DaoAuthenticationConfigurer .
然后,此配置将添加 DaoAuthenticationProvider 在名单上 AuthenticationProvider 这是可以使用的。
您可以在 AuthenticationManagerBuilder 源代码。

相关问题