春季安全BCryptPasswordEncoder插入,但不匹配(Spring Security B

2019-09-29 01:58发布

我已经制定了Spring MVC的一个小项目。 该项目有帐户表,帐户有BCryptPasswordEncoder编码密码。 我已经用java的配置,而不是XML配置。

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter 
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

我得到的用户信息和编码的密码。

@Autowired
    private PasswordEncoder passwordEncoder;

    String pass=user.getPassword();
    user.setPassword(passwordEncoder.encode(pass));

最后,即使我的用户123密码编码它,但,

boolean passstate=pe.matches(pass, user.getPassword());

返回false

Answer 1:

一个常见的错误,“密码”柱(用户表)的长度小于60,例如,密码VARCHAR(45),和一些数据库将自动截断数据。 所以,你总是警告“编码的密码看起来并不像BCrypt”。

为了解决这个问题,确保“密码”列的长度至少为60。

有关详细信息,请检查: https://www.mkyong.com/spring-security/spring-security-encoded-password-does-not-look-like-bcrypt/



文章来源: Spring Security BCryptPasswordEncoder Inserted But Not Match