“ WARN o.s.s.c.bcrypt.BCryptPasswordEncoder-春季安全性中的空编码密码”是什么意思?

时间:2019-01-18 09:17:34

标签: java spring-boot spring-security jwt

我正在现有的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();
}

预先感谢!

1 个答案:

答案 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

发出警告。