我正在创建一个完整的用户登录和注册后端系统,带有电子邮件验证功能,并使用PostgreSQL来存储用户的凭据。我已经到了一个安全层出现问题的地步。更具体地说,我有以下代码,由于WebSecurityConfigurerAdapter被弃用,我想更改这些代码:
折旧前的旧版本
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(daoAuthenticationProvider());
}
@Bean
public DaoAuthenticationProvider daoAuthenticationProvider() {
DaoAuthenticationProvider provider =
new DaoAuthenticationProvider();
provider.setPasswordEncoder(bCryptPasswordEncoder);
provider.setUserDetailsService(applicationUserService);
return provider;
}
我搜索了this问题,发现现在可以通过以下方式访问AuthenticationManagerBuilder:
最新版本的身份验证管理器
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
return authenticationConfiguration.getAuthenticationManager();
}
我的问题是我找不到一种方法来注入我的daoAuthenticationProvider到AuthenticationManager的最新方法中。有什么建议吗???
2条答案
按热度按时间6mw9ycah1#
您应该不需要
AuthenticationConfiguration
,您可以创建自己的bean,如下所示:nom7f22z2#
添加自定义身份验证提供程序是在SecurityFilterChain bean中配置的。虽然查看了给定的代码,但标准DAO身份验证将自动添加
http.formLogin()
,而不需要AuthenticationProvider。另请参阅https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter