我正在现有的Web应用程序中实现Spring Security,当我尝试登录时,我尝试以日志形式获取响应时输入的错误凭据(即使凭据正确)也显示为
WARN o.s.s.c.bcrypt.BCryptPasswordEncoder-空的编码密码
这是不合格凭证的原因吗?
这是我的代码
@PostConstruct
public void init() {
try {
authenticationManagerBuilder
.userDetailsService(accountDetailsService)
.passwordEncoder(passwordEncoder());
} catch (Exception e) {
throw new BeanInitializationException("Security configuration failed", e);
}
}
@Bean
public PasswordEncoder passwordEncoder()
{
return new BCryptPasswordEncoder();
}
预先感谢!
答案 0 :(得分:5)
字面意思是它的意思。如有类似疑问,请查看源代码。
以下代码来自package org.springframework.security.crypto.bcrypt;
public boolean matches(CharSequence rawPassword, String encodedPassword) {
if (encodedPassword == null || encodedPassword.length() == 0) {
logger.warn("Empty encoded password");
return false;
}
if (!BCRYPT_PATTERN.matcher(encodedPassword).matches()) {
logger.warn("Encoded password does not look like BCrypt");
return false;
}
return BCrypt.checkpw(rawPassword.toString(), encodedPassword);
}
如您所见:
encodedPassword == null || encodePassword.length()== 0
发出警告。