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