package automately.core.file; import com.hazelcast.nio.ObjectDataInput; import com.hazelcast.nio.ObjectDataOutput; import io.jsync.app.core.persistence.DataType; import io.jsync.json.JsonObject; import io.jsync.json.impl.Json; import io.jsync.utils.CryptoUtils; import io.jsync.utils.Token; import java.io.IOException; import java.util.Date; public class VirtualFileToken extends DataType { public String fileToken = ""; public String userToken = ""; //Empty by default public Date created = new Date(); public Date expires = new Date(); private String token = CryptoUtils.calculateHmacSHA1(Token.generateToken().toString(), Token.generateToken().toString()); @Override public void writeData(ObjectDataOutput dataOutput) throws IOException { dataOutput.writeUTF(token); dataOutput.writeUTF(fileToken); dataOutput.writeUTF(userToken); dataOutput.writeObject(created); dataOutput.writeObject(expires); } @Override public void readData(ObjectDataInput dataInput) throws IOException { token = dataInput.readUTF(); fileToken = dataInput.readUTF(); userToken = dataInput.readUTF(); created = dataInput.readObject(); expires = dataInput.readObject(); } public String token() { return token; } @Override public void loadJson(JsonObject json) { if (json != null) { this.token = json.getString("token", this.token); this.fileToken = json.getString("fileToken", this.fileToken); this.userToken = json.getString("userToken", this.userToken); this.created = new Date(json.getLong("created", created.getTime())); this.expires = new Date(json.getLong("expires", expires.getTime())); } } @Override public JsonObject toJson() { JsonObject ret = new JsonObject(Json.encode(this)); ret.putString("token", token); ret.removeField("factoryId"); ret.removeField("id"); return ret; } }