Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的Spring安全哈希密码没有进行身份验证?_Java_Spring_Hash - Fatal编程技术网

Java 为什么我的Spring安全哈希密码没有进行身份验证?

Java 为什么我的Spring安全哈希密码没有进行身份验证?,java,spring,hash,Java,Spring,Hash,如果我删除散列密码,它会像一个符咒一样进行身份验证,但当我用散列保存密码,然后将其设置为Spring进行比较时,它根本不起作用,它不会进行身份验证 这是我的密码: @Autowired protected void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(springUserService); auth.authent

如果我删除散列密码,它会像一个符咒一样进行身份验证,但当我用散列保存密码,然后将其设置为Spring进行比较时,它根本不起作用,它不会进行身份验证

这是我的密码:

@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
而不是两者都设置。