package net.dontdrinkandroot.example.angularrestspringsecurity.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import java.util.Date;
/**
* @author Philip Washington Sorst <philip@sorst.net>
*/
@javax.persistence.Entity
public class AccessToken implements Entity
{
@Id
@GeneratedValue
private Long id;
@Column(nullable = false)
private String token;
@ManyToOne
private User user;
@Column
private Date expiry;
protected AccessToken()
{
/* Reflection instantiation */
}
public AccessToken(User user, String token)
{
this.user = user;
this.token = token;
}
public AccessToken(User user, String token, Date expiry)
{
this(user, token);
this.expiry = expiry;
}
@Override
public Long getId()
{
return this.id;
}
public String getToken()
{
return this.token;
}
public User getUser()
{
return this.user;
}
public Date getExpiry()
{
return this.expiry;
}
public boolean isExpired()
{
if (null == this.expiry) {
return false;
}
return this.expiry.getTime() > System.currentTimeMillis();
}
}