Remover Authorities do usuaurio no SpringSecurity

0 respostas
jonathaslf

Boa noite pessoal,
Estou com um problema tenho o seguinte cenário. 3 tabelas, sendo : Usuario, Role, e Perfil(id_role,id_usuaro).
Sendo que tenho apenas duas Class entidade mapeadas pelo hibernate. Usuario e Role, quando vou cadastrar o usuario escolho as roles e automaticamente o hibernate ja insere na tabela Perfil (claro), minha duvida he: Nao estou conseguido alterar as permissões do usuario. pois nao tenho como trabalhar direto com a classe permissao pois nao esta mapeada como classe entidade. vou mostrar como estão minhas classas.

classe Usuario
@Entity
@Table(name = "usuario")
@javax.persistence.SequenceGenerator(name = "usuario_id_usuario_seq", sequenceName = "usuario_id_usuario_seq")
public class Usuario implements Serializable, UserDetails {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO, generator="usuario_id_usuario_seq")
    @Basic(optional = false)
    @Column(name = "id_usuario")
    private Integer idUsuario;
    @Column(name = "matricula")
    private String matricula;
    @Basic(optional = false)
    @Column(name = "username")
    private String username;
    @Column(name = "password")
    private String password;
    @Column(name = "status")
    private Boolean status;
    @Column(name = "tipo_usuario")
    private String tipoUsuario;
    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "permissao", joinColumns =
    @JoinColumn(name = "id_usuario"), inverseJoinColumns =
    @JoinColumn(name = "id_role"))
    private List<Role> perfis = new ArrayList<Role>();

//getter e setter...

@Override
   public Collection<GrantedAuthority> getAuthorities() {
		List<GrantedAuthority> lista = new ArrayList<GrantedAuthority>();
		for(Role role : getPerfis()) {
			lista.add(new GrantedAuthorityImpl(role.getAuthority()));
		}
		return lista;
	}
Classe Role
@Entity
@Table(name = "role")
public class Role implements Serializable, GrantedAuthority {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_role")
    private Integer idRole;
    @Column(name = "descricao")
    private String descricao;
    @Column(name = "nome")
    private String nome;
    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "permissao", joinColumns =
    @JoinColumn(name = "id_role"), inverseJoinColumns =
    @JoinColumn(name = "id_usuario"))
    private List<Usuario> usuarios = new ArrayList<Usuario>();
Na minha classe usuario tem o metodo getAuthorities que traz as roles daquele usuario. fiz um teste pra ver se isso funcionaria mas nao.
usuarioController.getUsuario().getAuthorities().clear();
              System.out.println(usuarioController.getUsuario().getAuthorities().toString());

Mas ele continua imprimindo todas roles do usuario.
Nao sei se deu pra entender mas he mais ou menos isso. Obg

Criado 18 de dezembro de 2012
Respostas 0
Participantes 1