Buenas noches, estoy tratando de añadir una funcionalidad al código que estamos viendo en el curso de Spring que registre las contraseñas de los usuarios pero encriptada con Bcrypt, con este código: (
@Autowired
private UsuarioRepository usuarioRepository;
@PostMapping("/signup")
public ResponseEntity registrarUsuario(@RequestBody DatosAutenticacionUsuario datosAutenticacionUsuario) {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String encryptedPassword = passwordEncoder.encode(datosAutenticacionUsuario.password());
DatosAutenticacionUsuario datos = new DatosAutenticacionUsuario(datosAutenticacionUsuario.nombreusuario(), encryptedPassword);
//usuarioRepository.save(new Usuario(datosAutenticacionUsuario.nombreusuario(), encryptedPassword));
usuarioRepository.save(new Usuario(datos));
return ResponseEntity.ok(null);
}
En Usuario cree el siguiente constructor:
public Usuario(DatosAutenticacionUsuario datos) {
this.password = datos.password();
this.nombreusuario = datos.nombreusuario();
}
El código funciona perfectamente para grabar el password con Bcrypt, pero al momento de hacer un login por medio de una petición POST para obtener un JWT token, me devuelve esto:
{ "timestamp": "2023-05-18T22:09:40.140+00:00", "status": 403, "error": "Forbidden", "message": "Access Denied", "path": "/usuarios" }
Si borro o comento el constructor, el login vuelve a funcionar perfectamente devolviendo un JWT token tal como en clase. Que hago para que esto deje de suceder?
Saludos,