Что означает «WARN o.s.s.c.bcrypt.BCryptPasswordEncoder - Пустой кодированный пароль в весенней безопасности?» - PullRequest
0 голосов
/ 18 января 2019

Я реализую 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 голосов
/ 18 января 2019

Это буквально означает то, что написано. В случае подобных сомнений, пожалуйста, посмотрите на исходный код.

Ниже приведен код от 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 || encodedPassword.length () == 0

отсюда и ваше предупреждение.

...