Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Duvida no Usuário - Será mostrado como criar o usuario

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!!!!

2 respostas

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!

solução!

Muito Grato!!!!