Spring mvc 重写configure(authenticationmanagerabuilder)方法与仅创建DaoAuthenticationProvider之间的区别
我正在试用使用JPA的Spring安全认证。我看到了两个youtube频道(Java Brains)和(Telusko)。Java Brains guy已经从WebSecurityConfigure中重写了configure(AuthenticationManagerBuilder Auth)方法,Telusko guy使用了一个bean来设置DaoAuthenticationProvider来配置userDetailService。我知道authenticationManager调用authenticationProvider,inturn调用userDetailService加载用户。如果我错了就纠正。有人能解释一下这两种方法的区别吗。提前感谢。区别在于身份验证的一种方式(DaoAuthenticationProvider)与开放更多选择的方式(AuthenticationManagerBuilder)。 通过配置DaoAuthenticationProvider,意味着您选择“Dao”/“userDetailService”对用户进行身份验证。 Spring Security使用身份验证管理器进行身份验证,ProviderManager是默认的身份验证管理器,它通过AuthenticationProviders列表迭代身份验证请求。DaoAuthenticationProvider就是其中之一 通过使用方法配置身份验证管理器:configure(AuthenticationManagerBuilder Auth) 您有更多的灵活性,可以配置身份验证管理器以使用自定义的身份验证提供程序。(您可以使用CustomAuthenticationProvider实现AuthenticationProvider接口) 您还可以通过简单地提供userdetailservice来配置DaoAuthenticationProvider,因为AuthenticationManagerBuilder将连接它Spring mvc 重写configure(authenticationmanagerabuilder)方法与仅创建DaoAuthenticationProvider之间的区别,spring-mvc,spring-security,spring-data-jpa,Spring Mvc,Spring Security,Spring Data Jpa,我正在试用使用JPA的Spring安全认证。我看到了两个youtube频道(Java Brains)和(Telusko)。Java Brains guy已经从WebSecurityConfigure中重写了configure(AuthenticationManagerBuilder Auth)方法,Telusko guy使用了一个bean来设置DaoAuthenticationProvider来配置userDetailService。我知道authenticationManager调用authe
@Autowired
private CustomUserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
尽管如此,使用AuthenticationManagerBuilder更为常见,因为它可以用于配置不同类型的身份验证提供程序
@Autowired
private CustomUserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}