Java 为什么我的Spring安全哈希密码没有进行身份验证?
如果我删除散列密码,它会像一个符咒一样进行身份验证,但当我用散列保存密码,然后将其设置为Spring进行比较时,它根本不起作用,它不会进行身份验证 这是我的密码:Java 为什么我的Spring安全哈希密码没有进行身份验证?,java,spring,hash,Java,Spring,Hash,如果我删除散列密码,它会像一个符咒一样进行身份验证,但当我用散列保存密码,然后将其设置为Spring进行比较时,它根本不起作用,它不会进行身份验证 这是我的密码: @Autowired protected void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(springUserService); auth.authent
@Autowired
protected void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(springUserService);
auth.authenticationProvider(authenticationProvider());
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public DaoAuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
authenticationProvider.setUserDetailsService(springUserService);
authenticationProvider.setPasswordEncoder(passwordEncoder());
return authenticationProvider;
}
正如所料,Spring加密机工作正常,所以我想这只是我的配置问题。以下是测试:
public class TestBCrypt {
public static void main(String[] args) {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
//String encodedPassword = passwordEncoder.encode("123");
//System.out.println(encodedPassword);
System.out.println(passwordEncoder.matches("123","$2a$10$KZkrMlK2dnyKfKa3xvRSMukQzmul.DUgOvdv7GFezqGFmoBeFDkt.")); // prints true
}
}您可以发布您的登录控制器吗?您可以设置
userDetailsService
或authenticationProvider
而不是两者都设置。