1
resposta

Problemas ao usar o Spring Security (Curso Spring MVC II)

Realizei o curso Spring MVC II e na aula 4 (Personalizando o login e logout), o professor ensina a criar um sistema de autenticação criando uma classe Usuário e outra chamada Role. Ficou basicamente assim:

Classe Usuario (ocultei os getters, setters e os métodos do UserDetails para resumir):

@Entity
public class Usuario implements UserDetails  {

    private static final long serialVersionUID = 1L;

    @Id
    private String email;
    private String senha;
    @OneToMany(fetch=FetchType.EAGER)
    private List<Role> roles = new ArrayList<Role>();

Classe Role:

@Entity
public class Role implements GrantedAuthority {

    private static final long serialVersionUID = 1L;

    @Id
    private String nome;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    @Override
    public String getAuthority() {
        // TODO Auto-generated method stub
        return this.nome;
    }
}

Bom, funcionou tudo perfeitamente, todavia, ocorre problema quando eu quero criar mais de um usuário com a mesma ROLE. É como se eu não pudesse repetir a mesma role para usuários diferentes. Alguem sabe como resolver isso? Quero que vários usuários possam ter a mesma ROLE ...

Obrigado!

1 resposta

Fala Murilo, tudo bem ?

Substitua a anotação @OneToMany(fetch=FetchType.EAGER) para @ManyToMany(fetch=FetchType.EAGER) assim vários Usuários poderão ser associados a várias Roles =)

Abraço!