Skip to content

Fix: pre-hashear con SHA-256 antes de BCrypt para soportar contraseñas largas

Agustín Cantero requested to merge pft/fix/bcrypt-limite-72-bytes-contrasenia into dev

BCrypt trunca y en esta versión de Spring Security rechaza con IllegalArgumentException cualquier entrada de más de 72 bytes, mientras que los DTOs de cambio/restablecimiento de contraseña validan hasta 100 caracteres. Una contraseña de 73 a 100 caracteres ASCII rompía con un 500 genérico en vez de guardarse. Sha256BCryptPasswordEncoder normaliza la entrada a 64 caracteres hex antes de delegar en BCrypt, sin bajar el máximo declarado en los DTOs.

Cambia el hashing para todo el sistema, no solo para contraseñas largas. En un entorno con datos reales requiere migrar los hashes existentes o recrearlos en el próximo login, no solo actualizar el código. En local hay que recrear la BD para que los usuarios demo se resiembren con el hash nuevo.

Mantis: https://mantis.utec.edu.uy/view.php?id=43928

Merge request reports

Loading