93 lines
1.9 KiB
Java
93 lines
1.9 KiB
Java
package app.mealsmadeeasy.api.auth;
|
|
|
|
import app.mealsmadeeasy.api.user.User;
|
|
import jakarta.persistence.*;
|
|
|
|
import java.time.OffsetDateTime;
|
|
import java.time.temporal.ChronoUnit;
|
|
import java.util.UUID;
|
|
|
|
@Entity(name = "RefreshToken")
|
|
@Table(name = "refresh_token")
|
|
public class RefreshTokenEntity implements RefreshToken {
|
|
|
|
@Id
|
|
@Column(nullable = false)
|
|
private UUID token;
|
|
|
|
@Column(nullable = false)
|
|
private OffsetDateTime issued;
|
|
|
|
@Column(nullable = false)
|
|
private OffsetDateTime expiration;
|
|
|
|
@ManyToOne(optional = false)
|
|
@JoinColumn(name = "owner_id", nullable = false)
|
|
private User owner;
|
|
|
|
@Column(nullable = false)
|
|
private Boolean deleted = false;
|
|
|
|
@Column(nullable = false)
|
|
private Boolean revoked = false;
|
|
|
|
@Override
|
|
public UUID getToken() {
|
|
return this.token;
|
|
}
|
|
|
|
public void setToken(UUID token) {
|
|
this.token = token;
|
|
}
|
|
|
|
@Override
|
|
public OffsetDateTime getIssued() {
|
|
return this.issued;
|
|
}
|
|
|
|
public void setIssued(OffsetDateTime issued) {
|
|
this.issued = issued;
|
|
}
|
|
|
|
@Override
|
|
public OffsetDateTime getExpires() {
|
|
return this.expiration;
|
|
}
|
|
|
|
public void setExpiration(OffsetDateTime expiration) {
|
|
this.expiration = expiration;
|
|
}
|
|
|
|
@Override
|
|
public boolean isRevoked() {
|
|
return this.revoked;
|
|
}
|
|
|
|
public void setRevoked(boolean revoked) {
|
|
this.revoked = revoked;
|
|
}
|
|
|
|
public User getOwner() {
|
|
return this.owner;
|
|
}
|
|
|
|
public void setOwner(User owner) {
|
|
this.owner = owner;
|
|
}
|
|
|
|
@Override
|
|
public boolean isDeleted() {
|
|
return this.deleted;
|
|
}
|
|
|
|
public void setDeleted(boolean deleted) {
|
|
this.deleted = deleted;
|
|
}
|
|
|
|
@Override
|
|
public long getLifetime() {
|
|
return ChronoUnit.SECONDS.between(this.issued, this.expiration);
|
|
}
|
|
|
|
}
|