0
respostas

Como criar um usuario por uma pagina html

Eu encontrei uma duvida parecida porem tentei executar e não deu certo eu fico com erro ao tentar gerenciar a autorização de cada user! consegui criar o usuario mas não ta criando a fk da autorização no banco de dados.

@Entity
@Table(name = "users")
public class User {

    @Id
    @NotBlank
    private String username;

    @NotBlank
    private String password;
    private Boolean enabled;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "user", fetch = FetchType.LAZY)
    private List<Pedido> pedidos;

    @ElementCollection
    @CollectionTable(name = "authorities", joinColumns = @JoinColumn(name = "username"))
    private Set<Authority> authorities = new HashSet<>();
}
@Embeddable
public class Authority  {

    private String authority;

    public Authority() {
    }

    public Authority(String authority) {
        this.authority = authority;
    }
}    
@Controller
public class CadastroUsuarioController {

    @Autowired
    private UserRepository repository;

    @GetMapping("/cadastrar")
    public ModelAndView login() {
        ModelAndView mv = new ModelAndView("cadastrar");
        mv.addObject("user", new User());

        return mv;
    }


    @PostMapping("/cadastrar")
    public String cadastrar(@Valid User user, BindingResult result) {
        if (result.hasErrors()) {
            return "cadastrar";
        }

        user.setPassword(new BCryptPasswordEncoder().encode(user.getPassword()));
        user.setEnabled(true);
        user.addAuthority("USER");
        repository.save(user);

        return "redirect:/login";
    }
}

acredito que o erro ta em umas dessas partes o user.addAuthority("USER"); não é encontrado e eu não consegui gerar um que consiga ser util