После обновления моего сайта с Symfony 4 до Symfony 5 я заменил FOSUserBundle на собственную систему. Но теперь, когда я пытаюсь войти на свой сайт, я получаю следующее сообщение: « Представленный пароль недействителен ». При отладке я заметил, что число итераций, используемых для кодирования пароля, было различным в двух системах. По умолчанию кажется «5000»:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
App\Entity\User:
algorithm: sha512
iterations: 5000
Но, когда я пытаюсь получить значение внутри файла MessageDigestPasswordEncoder
, количество итераций равно «1»!
, если Я вручную кодирую пароль с итерацией 5000, он действителен:
for ($i = 1; $i < 5000; ++$i) {
$digest = hash($this->algorithm, $digest.$salted, true);
}
Итак, я не могу понять, почему Symfony игнорирует мою конфигурацию.