package be.neutrinet.ispng.security;
import be.neutrinet.ispng.vpn.Users;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import org.apache.log4j.Logger;
import java.sql.SQLException;
import java.util.UUID;
/**
* Created by wannes on 12/20/14.
*/
@DatabaseTable(tableName = "session_tokens")
public class SessionToken {
@DatabaseField(canBeNull = false)
private UUID user;
@DatabaseField(canBeNull = false)
private String address;
@DatabaseField(canBeNull = false)
private long creationTime;
@DatabaseField(id = true)
private UUID token;
private SessionToken() {
}
public SessionToken(UUID user, String address) {
this.user = user;
this.address = address;
this.creationTime = System.currentTimeMillis();
this.token = UUID.randomUUID();
try {
SessionTokens.dao.create(this);
} catch (SQLException ex) {
Logger.getLogger(getClass()).error("Failed to create session token", ex);
}
}
public UUID getToken() {
return token;
}
public UUID getUser() {
return user;
}
public String getAddress() {
return address;
}
public long getCreationTime() {
return creationTime;
}
public boolean valid() {
if (Users.isRelatedService(this.user)) return true;
return System.currentTimeMillis() - this.creationTime <= 3600 * 1000;
}
}