2
respostas

Castro de Usuário e Role via Formulário

Olá, Estou com dificuldades para cadastrar usuário e permissão. Já pesquisei muita coisa mas a maioria dos exemplos que encontrei são para InMemoryUserDetailsManager. Gostaria de fazer o cadastro de usuário via formulário.

UsuarioModel

    @OneToMany(fetch = FetchType.EAGER)
    private List<Perfil> perfil = new ArrayList<>();

PerfilModel

    @Id
    @ManyToOne
    private Usuario usuario;

    @Enumerated(EnumType.STRING)
    private Role role;

Enum Role

public enum Role {

    ADMINISTRADOR,
    USUARIO;

}

UsuarioController

@PostMapping(value = "/save")
    public ModelAndView save(Usuario usuario, BindingResult bindingResult, RedirectAttributes redirectAttributes) {

        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        String encodedPassword = passwordEncoder.encode(usuario.getSenha());
        usuario.setSenha(encodedPassword);

        usuarioRepository.save(usuario);

        System.out.println(">>>>>>>>>>>>" + usuario);

        redirectAttributes.addFlashAttribute("message", "Operação realizada com sucesso!");

        return edit(usuario.getId());
    }

Apesar de enviar o parâmetro, esta retornando perfil=[]

  • Como posso gravar os dados de usuario e de perfil fazendo o relacionamento certo?
+--------------------+
| Tables_in_matt     |
+--------------------+
| hibernate_sequence |
| perfil             |
| usuario            |
| usuario_perfil     |
+--------------------+

Desde já agradeço
2 respostas

Alguém pode me ajudar?

Olá Sérgio,

Sua necessidade é criar um formulário para cadastro de usuários utilizando Spring Security? A única dúvida que eu fiquei foi referente ao seu formulário, mas se ele estiver enviando as informações de usuário (username) e a role, o processo de cadastro no seu controller está certo. Talvez seja mais fácil receber a role separadamente, dessa forma no seu controller você faz um find e atribui ela no seu usuário antes de persistir no banco de dados.

Tenho um exemplo que utilizei a algum tempo para realizar um fluxo de cadastro parecido, dá uma olhada: https://hellokoding.com/registration-and-login-example-with-spring-security-spring-boot-spring-data-jpa-hsql-jsp/

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software