我正在用spring引导来实现spring安全性。我使用BCrypt生成器在线生成密码。但是,当我尝试登录时,我得到了错误消息:
2019-10-18 11:10:10:56.983警告53908 -- io-9090-exec-10 o.s.s.c.bcrypt.BCryptPasswordEncoder :编码密码看起来不像BCrypt。
经过一些研究,我发现Security中存在一个bug,它只查找"$2a“正则表达式。有人能向我解释一下解决这些问题吗?
发布于 2019-10-18 10:40:36
默认情况下,spring引导2.1.x支持spring-security-core-5.1.x,它通常生成$2a版本的bcrypt
这个版本不支持不同版本的BCryptPasswordEncoder。
如果您想使用其他版本,则需要升级spring-security-core版本。
在pom.xml中添加以下内容
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
然后创建BCryptPasswordEncoder bean,如下所示
@Bean(name = "passwordEncoder")
public BCryptPasswordEncoder getPasswordEncoder() {
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(BCryptVersion.$2B);
return bCryptPasswordEncoder;
}
可以在BCryptPasswordEncoder.的构造函数中传递所需的版本。
可能的值是
https://stackoverflow.com/questions/58447685
复制相似问题