Minha dúvida esta como criar(salvar no bd) o usuário... com a senha criptografada!!!! Não sei... se o prof. falou em algum momento sobre esse assunto.... e passou despercebido por mim.... é muita informação!!!! Fico no aguardo!!!!
Minha dúvida esta como criar(salvar no bd) o usuário... com a senha criptografada!!!! Não sei... se o prof. falou em algum momento sobre esse assunto.... e passou despercebido por mim.... é muita informação!!!! Fico no aguardo!!!!
Oi!
Não, isso não será mostrado nessa formação. Existe outra formação sobre Spring Security que está em andamento neste momento, que vai abordar esse assunto.
Mas seria algo como:
public record DadosCadastroUsuario(String nome, String email, String senha){}
public record DadosUsuarioCadastrado(Long id, String nome, String email) {
public DadosUsuarioCadastrado(Usuario usuario) {
this(usuario.getId(), usuario.getNome(), usuario.getEmail());
}
}
@RestController
@RequestMapping("usuarios")
public class CadastroUsuarioController {
@Autowired
private UsuarioRepository usuarioRepository;
@Autowired
private PasswordEncoder passwordEncoder;
@PostMapping
@Transactional
public ResponseEntity<DadosUsuarioCadastrado> cadastrar(@RequestBody @Valid DadosCadastroUsuario dados) {
var emailJaCadastrado = usuarioRepository.existsByEmail(dados.email());
if (emailJaCadastrado) {
throw new ValidacaoException("E-mail já está cadastrado para outro usuário!");
}
// outras validações...
var senhaBcrypt = passwordEncoder.encode(dados.senha());
var usuario = new Usuario(dados, senhaBcrypt);
usuarioRepository.save(usuario);
return ResponseEntity.ok(new DadosUsuarioCadastrado(usuario));
}
}
Bons estudos!
Muito Grato!!!!