Ola!
Estou tentando usar a anotacao @AuthenticationPrincipal Usuario user
para pegar a Authorities.
Eis o problema entao: O professor ensina a criar a entidade de perfil e colocar na entidade do usuario: Ai esta minhas entidade de Perfil:
package com.compasso.academia.model;
import org.springframework.security.core.GrantedAuthority;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Perfil implements GrantedAuthority {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public String getAuthority() {
return this.nome;
}
}
Na parte de usuario eu vou mostrar somente o que interessa:
@ManyToMany(fetch = FetchType.EAGER)
private List<Perfil> perfis = new ArrayList<>();
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return this.perfis;
}
Porem ele nao ensinou como setar um perfil! Quando eu crio um usuario e no meu codigo uso o seguinte
@RequestMapping("dashboard")
@ResponseBody
public String dashboard(@AuthenticationPrincipal Usuario user){
// TODO: Implementar a verificacao do cargo do usuario
// If User: If Admin...
return "Ola " + user.getNome() +
"\nEmail: " + user.getEmail() +
"Security: " + user.getAuthorities();
}
Ele me retorna: Security: []
Entao.. O que posso fazer para quando criar um novo usuario ele ja ir com a role de usuario?
E para mostrar essa role quando eu usar user.getAuthorities()