package com.jdriven.stateless.security;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import org.springframework.security.core.GrantedAuthority;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Entity
@IdClass(UserAuthority.class)
public class UserAuthority implements GrantedAuthority {
@NotNull
@ManyToOne(fetch = FetchType.LAZY)
@JsonIgnore
@Id
private User user;
@NotNull
@Id
private String authority;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String getAuthority() {
return authority;
}
public void setAuthority(String authority) {
this.authority = authority;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof UserAuthority))
return false;
UserAuthority ua = (UserAuthority) obj;
return ua.getAuthority() == this.getAuthority() || ua.getAuthority().equals(this.getAuthority());
}
@Override
public int hashCode() {
return getAuthority() == null ? 0 : getAuthority().hashCode();
}
@Override
public String toString() {
return getClass().getSimpleName() + ": " + getAuthority();
}
}