2908 lines
225 KiB
Java

package com.jamesquinley.DelegationServices;
import com.jamesquinley.Asecure.secureCalls;
import com.jamesquinley.variables;
import com.mongodb.BasicDBObject;
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCommandException;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.Random;
import static com.jamesquinley.Asecure.electronicMailHandler.*;
import static com.jamesquinley.Asecure.secureCalls.accountMigrationComplete;
import static com.mongodb.client.model.Filters.eq;
import static java.util.concurrent.TimeUnit.SECONDS;
public class delegationServices {
static ConnectionString scReadconnectionString;
static MongoClientSettings scReadsettings;
static MongoClient dClient;
static MongoDatabase dClientDatabase;
static MongoCollection<Document> dCollection;
static MongoDatabase RGFilterDB;
static MongoCollection<Document> RGFilter;
static Document Lrequest = null;
public static void connectionInit(Boolean beta) {
//TODO Send Server Version As Standard.
if (beta) {
scReadconnectionString = new ConnectionString("mongodb+srv://betaServer:fi0tZ6yvJjTm16yA@obsidiancorebetaapi.s0mzauh.mongodb.net/?retryWrites=true&w=majority");
//connects to database that beta clients can use.
System.out.println("This is a beta server build (and will only work on that type)");
scReadsettings = MongoClientSettings.builder()
.applyConnectionString(scReadconnectionString)
.applyToSocketSettings(builder ->
builder.connectTimeout(5, SECONDS)
.readTimeout(6, SECONDS))
.build();
dClient = MongoClients.create(scReadsettings);
dClientDatabase = dClient.getDatabase("DelegationRequest");
dCollection = dClientDatabase.getCollection("accountRequest");
RGFilterDB = dClient.getDatabase("rgcon");
RGFilter = RGFilterDB.getCollection("blocked");
} else {
scReadconnectionString = new ConnectionString("mongodb+srv://serverClient:x2sJ8Qu0VVMifNLX@accountdelegation.n06hb.mongodb.net/DelegationRequest?retryWrites=true&w=majority");
//connects to database that production clients can use
System.out.println("This is a production server build (and will only work on that type)");
scReadsettings = MongoClientSettings.builder()
.applyConnectionString(scReadconnectionString)
.applyToSocketSettings(builder ->
builder.connectTimeout(5, SECONDS)
.readTimeout(6, SECONDS))
.build();
dClient = MongoClients.create(scReadsettings);
dClientDatabase = dClient.getDatabase("DelegationRequest");
dCollection = dClientDatabase.getCollection("accountRequest");
RGFilterDB = dClient.getDatabase("rgcon");
RGFilter = RGFilterDB.getCollection("blocked");
}
}
//TODO get switcher working, NPE currently triggers on post init, move below code block into if statement, or outside of it so it will do the same thing regardless of t/f switch output
static ConnectionString AccountCon = new ConnectionString("mongodb://accountserver:x2sJ8Qu0VVMifNLX@192.168.1.5:27017/account?retryWrites=true&w=majority");
//mongodb://localhost:27017
//mongodb://accountserver:x2sJ8Qu0VVMifNLX@192.168.1.5:27017/account?retryWrites=true&w=majority
static MongoClientSettings AccountSettings = MongoClientSettings.builder()
.applyConnectionString(AccountCon)
.applyToSocketSettings(builder ->
builder.connectTimeout(5, SECONDS)
.readTimeout(6, SECONDS))
.build();
static MongoClient accountGetClient = MongoClients.create(AccountSettings);
static MongoDatabase accountDatabase = accountGetClient.getDatabase("account");
static MongoCollection<Document> accountS = accountDatabase.getCollection("UserPass");
static MongoDatabase database = accountGetClient.getDatabase("guilds");
static MongoCollection<Document> scCollection = database.getCollection("userCredits");
static int RequestR;
//still need to config
public static String lastNet = null;
public static String IPA = null;
private static Boolean legacy = false;
private static double version = 0.0;
public static void banUserID(String UUID) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("UUID", UUID);
BasicDBObject updateQuery2 = new BasicDBObject();
updateQuery2.append("$set",
new BasicDBObject().append("Status", false));
accountS.updateOne(searchQuery, updateQuery2);
}
public static void delegationProcesser() {
Document Filter;
Object ClientID = null;
try {
String RG = (String) Lrequest.get("rg");
Filter = RGFilter.find(eq("rgkey", "UAROCKS")).first();
try {
ClientID = Lrequest.get("_id");
} catch (Exception exrp) {
System.out.println("This request has opted out of CID.");
}
try {
IPA = (String) Lrequest.get("net");
} catch (Exception exrp) {
System.out.println("This request has opted out of NET.");
}
try {
version = (double) Lrequest.get("apiversion");
if (version >= (int) Filter.get("currentAPIVersion")) {
legacy =false;
System.out.println("nonlegacy");
} else {
legacy =true;
System.out.println("legacy");
}
} catch (Exception exrp) {
legacy = true;
System.out.println("legacy");
}
String blockedRG = (String) Filter.get("rgflag");
if ((Boolean) Filter.get("serviceState") == false) {
if ((Boolean) Filter.get("serviceTermination") == true) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("rid", Lrequest.get("rid"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 60));
updateQuery2.append("$set",
new BasicDBObject().append("dn", Filter.get("serviceTerminationNotes")));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("rid", Lrequest.get("rid"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 52));
updateQuery2.append("$set",
new BasicDBObject().append("dn", Filter.get("deniedmsg")));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
if (blockedRG.contains(RG)) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 19));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
System.out.println("User On Allowed Region");
int requesttype = (int) Lrequest.get("type");
System.out.println("Got Type, Getting Doc ID");
RequestR = requesttype;
System.out.println(RG);
System.out.println("Delegation Has Started");
if (requesttype == 0 || requesttype == 1 || requesttype == 2 || requesttype == 3 || requesttype == 4 || requesttype == 5 || requesttype == 6 || requesttype == 7 || requesttype == 8 || requesttype == 9 || requesttype == 10 || requesttype == 11 || requesttype == 12 || requesttype == 14 || requesttype == 20 || requesttype == 21 || requesttype == 41 || requesttype == 18 || requesttype == 47 || requesttype == 48 || requesttype == 54 || requesttype == 57 || requesttype == 61 || requesttype == 63 || requesttype == 65 || requesttype == 66 || requesttype == 67 || requesttype == 68 || requesttype == 71 || requesttype == 72 || requesttype == 73 || requesttype == 74 || requesttype == 75 || requesttype ==78 || requesttype == 79 || requesttype == 81 || requesttype == 87 || requesttype == 91 || requesttype == 95) {
if (requesttype == 47) {
System.out.println("Self Updater download Request");
BasicDBObject searchQuery = new BasicDBObject();
BasicDBObject SqS = new BasicDBObject();
SqS.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
try {
Document LCP = RGFilter.find(eq("rgkey", "UAROCKS")).first();
String UPDT = (String) LCP.get("UURI");
String config = (String) LCP.get("config");
System.out.println("ThisIsConfig " + config);
updateQuery.append("$set",
new BasicDBObject().append("type", 42));
updateQuery2.append("$set",
new BasicDBObject().append("uri", UPDT));
updateQuery3.append("$set",
new BasicDBObject().append("winconfig", config));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
} catch (Exception ex) {
updateQuery.append("$set",
new BasicDBObject().append("type", 43));
updateQuery2.append("$set",
new BasicDBObject().append("uri", "F"));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
}
dCollection.updateOne(SqS, updateQuery);
dCollection.updateOne(SqS, updateQuery2);
dCollection.updateOne(SqS, updateQuery3);
dCollection.updateOne(SqS, updateQuery6);
System.out.println("Finished Updater Request");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
if (requesttype == 41) {
System.out.println("Internal Launcher Download Request");
BasicDBObject searchQuery = new BasicDBObject();
BasicDBObject SqS = new BasicDBObject();
SqS.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
try {
Document LCP = RGFilter.find(eq("rgkey", "UAROCKS")).first();
String UPDT = (String) LCP.get("URI");
updateQuery.append("$set",
new BasicDBObject().append("type", 42));
updateQuery2.append("$set",
new BasicDBObject().append("uri", UPDT));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
} catch (Exception ex) {
updateQuery.append("$set",
new BasicDBObject().append("type", 43));
updateQuery2.append("$set",
new BasicDBObject().append("uri", "F"));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
}
dCollection.updateOne(SqS, updateQuery);
dCollection.updateOne(SqS, updateQuery2);
dCollection.updateOne(SqS, updateQuery6);
System.out.println("Finished Updater Request");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
if (requesttype == 0) {
String CTOKEN = (String) Lrequest.get("Token");
System.out.println("Sync Request (Read)");
Document accountServer;
String Token;
String Fname;
String UserName;
String Email;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
Token = (String) accountServer.get("Token");
if (accountServer.get("Status").equals(true)) {
if (Token.equals(CTOKEN)) {
Token = (String) accountServer.get("Token");
Fname = (String) accountServer.get("FName");
Email = (String) accountServer.get("Email");
UserName = (String) accountServer.get("User");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 12));
updateQuery1.append("$set",
new BasicDBObject().append("Token", Token));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery3.append("$set",
new BasicDBObject().append("Path", "Path has been removed from the service, please update to remove this message."));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery6);
dCollection.updateOne(searchQuery, updateQuery7);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
System.out.println("Finished Sync Read Op");
} else {
System.out.println("Sync Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("rid", Lrequest.get("rid"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
//delegationTimer.trigger();
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 11));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (MongoCommandException ERC) {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
//sync write request
if (requesttype == 1) {
System.out.println("Sync Request (Write)");
String CTOKEN = (String) Lrequest.get("Token");
Document accountServer;
String Token;
String Fname;
String UserName;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
if (!(accountServer == null)) {
Token = (String) accountServer.get("Token");
if (accountServer.get("Status").equals(true)) {
if (Token.equals(CTOKEN)) {
Token = (String) Lrequest.get("Token");
System.out.println("Got info.");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("Token", Token);
BasicDBObject SqS = new BasicDBObject();
SqS.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 12));
updateQuery3.append("$set",
new BasicDBObject().append("DummyWriteSyncData", "1"));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(SqS, updateQuery);
dCollection.updateOne(SqS, updateQuery6);
accountS.updateOne(searchQuery, updateQuery3);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("rid", (int) Lrequest.get("rid"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 11));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (MongoCommandException ERC) {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 2) {
System.out.println("Login Request (USR&PASS)");
String username = (String) Lrequest.get("User");
String password = (String) Lrequest.get("Password");
Document accountServer;
String Password;
String Token;
String Fname;
String UserName;
String Email;
String keychainUUID;
Boolean accountKeyStatus = false;
try {
accountServer = accountS.find(eq("User", username)).first();
Password = (String) accountServer.get("Password");
Email = (String) accountServer.get("Email");
if (accountServer.get("Status").equals(true)) {
if (accountServer.get("Version").equals("1")) {
try {
accountKeyStatus = accountServer.getBoolean("keyStatus");
} catch (Exception NPE) {
System.out.println("Assuming False Due To Variable Not Existing For User.");
accountKeyStatus = false;
}
if (accountKeyStatus == false) {
System.out.println(accountKeyStatus);
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sb = new StringBuilder();
Random random = new Random();
int length = 15;
for (int i = 0; i < length; i++) {
int index = random.nextInt(alphabet.length());
char randomChar = alphabet.charAt(index);
sb.append(randomChar);
}
String OTK = sb.toString();
BasicDBObject searchQuery = new BasicDBObject();
BasicDBObject keyApplicationIndex = new BasicDBObject();
searchQuery.append("_id", ClientID);
keyApplicationIndex.append("User", username);
secureCalls.oneTimeKeyEmail(((String) accountServer.get("Email")), OTK, username);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject keyApply = new BasicDBObject();
BasicDBObject keyAccountState = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 53));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
keyAccountState.append("$set",
new BasicDBObject().append("keyStatus", true));
keyApply.append("$set",
new BasicDBObject().append("tempKey", OTK));
accountS.updateOne(keyApplicationIndex, keyApply);
accountS.updateOne(keyApplicationIndex, keyAccountState);
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
accountKeyStatus = true;
} else {
System.out.println("RS1");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 53));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("RSC");
if (Password.equals(password)) {
System.out.println("R3c");
Token = (String) accountServer.get("Token");
Fname = (String) accountServer.get("FName");
Email = (String) accountServer.get("Email");
UserName = (String) accountServer.get("User");
lastNet = (String) accountServer.get("lastNet");
keychainUUID = (String) accountServer.get("UUID");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery5 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
BasicDBObject updateQuery8 = new BasicDBObject();
BasicDBObject updateQuery10 = new BasicDBObject();
//below if is used for custom greetings, and home messages, for holidays and such. (Also right before update ops)
BasicDBObject updateQuery9 = new BasicDBObject();
BasicDBObject updateQuery12 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 8));
updateQuery1.append("$set",
new BasicDBObject().append("Token", Token));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery3.append("$set",
new BasicDBObject().append("Path", "Path has been removed from the service, please update to remove this message."));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery5.append("$set",
new BasicDBObject().append("Password", Password));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
updateQuery8.append("$set",
new BasicDBObject().append("keychainUUID", keychainUUID));
if (legacy) {
if ((Boolean) Filter.get("legacyPRDisable") == true) {
BasicDBObject updateQuery11 = new BasicDBObject();
updateQuery11.append("$set",
new BasicDBObject().append("home", Filter.get("legacyHome")));
updateQuery12.append("$set",
new BasicDBObject().append("hs",true));
dCollection.updateOne(searchQuery, updateQuery11);
dCollection.updateOne(searchQuery, updateQuery12);
}
} else {
if (Filter.get("customHome").equals(true)) {
BasicDBObject updateQuery11 = new BasicDBObject();
updateQuery11.append("$set",
new BasicDBObject().append("home", Filter.get("valHome")));
updateQuery12.append("$set",
new BasicDBObject().append("hs",true));
dCollection.updateOne(searchQuery, updateQuery11);
dCollection.updateOne(searchQuery, updateQuery12);
} else {
updateQuery12.append("$set",
new BasicDBObject().append("hs",false));
dCollection.updateOne(searchQuery, updateQuery12);
}
}
/*
if (Filter.get("customGreeting").equals(true)) {
BasicDBObject updateQuery12 = new BasicDBObject();
updateQuery12.append("$set",
new BasicDBObject().append("greeting", Filter.get("valGreet")));
updateQuery10.append("$set",
new BasicDBObject().append("gs",true));
dCollection.updateOne(searchQuery, updateQuery12);
dCollection.updateOne(searchQuery, updateQuery10);
}else {
updateQuery10.append("$set",
new BasicDBObject().append("gs",false));
dCollection.updateOne(searchQuery, updateQuery10);
}
Planned for later, current UI wont allow
*/
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery5);
dCollection.updateOne(searchQuery, updateQuery6);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery8);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
localNet.macRead(IPA, lastNet, Email, UserName, Token);
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 11));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (Exception ERC) {
System.out.println("Something Went Wrong: " + ERC.getLocalizedMessage());
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 54) {
System.out.println("Verifying OTK");
String userKey = (String) Lrequest.get("otk");
String userName = (String) Lrequest.get("recoverUser");
String serverUserName;
userKey = userKey.toUpperCase();
System.out.println(userKey);
Document accountServer;
try {
accountServer = accountS.find(eq("tempKey", userKey)).first();
serverUserName = (String) accountServer.get("User");
if (accountServer.get("Status").equals(true)) {
if (userName.equalsIgnoreCase(serverUserName)) {
System.out.println("This key is correct.");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 55));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
System.out.println("This key is incorrect");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 56));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
} catch (Exception ERC) {
System.out.println("This key is incorrect." + ERC);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 56));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 57) {
System.out.println("Verifying email with account tied to OTK");
try {
String userKey = (String) Lrequest.get("otk");
String requestedPassword = (String) Lrequest.get("paw");
String email = (String) Lrequest.get("email");
String serverEmail;
userKey = userKey.toUpperCase();
Document accountServer;
accountServer = accountS.find(eq("tempKey", userKey)).first();
serverEmail = (String) accountServer.get("Email");
String userName = (String) accountServer.get("User");
String serverKey = (String) accountServer.get("tempKey");
if (email.equalsIgnoreCase(serverEmail) && userKey.equals(serverKey)) {
System.out.println("All Matching, lets go!");
BasicDBObject searchQuery = new BasicDBObject();
BasicDBObject searchQuery1 = new BasicDBObject();
searchQuery.append("Email", serverEmail);
searchQuery1.append("_id", ClientID);
System.out.println("Send indexes are ready.");
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
System.out.println("Objects are ready.");
updateQuery.append("$set",
new BasicDBObject().append("Password", requestedPassword));
updateQuery1.append("$unset",
new BasicDBObject().append("tempKey", ""));
updateQuery2.append("$set",
new BasicDBObject().append("Version", "2"));
updateQuery3.append("$set",
new BasicDBObject().append("keyStatus", false));
System.out.println("Objects set");
accountS.updateOne(searchQuery, updateQuery);
accountS.updateOne(searchQuery, updateQuery1);
accountS.updateOne(searchQuery, updateQuery2);
accountS.updateOne(searchQuery, updateQuery3);
System.out.println("Objects send");
BasicDBObject closeRequestType = new BasicDBObject();
BasicDBObject finalizeRequest = new BasicDBObject();
System.out.println("Objects close init");
closeRequestType.append("$set",
new BasicDBObject().append("type", 58));
finalizeRequest.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery1, closeRequestType);
dCollection.updateOne(searchQuery1, finalizeRequest);
System.out.println("Objects close send");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
System.out.println("request finished correctly");
accountMigrationComplete(serverEmail, userName);
} else {
System.out.println("request denied");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 59));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (Exception ex) {
System.out.println("Unable to reset password, making that known." + ex);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 59));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 3) {
System.out.println("Login Request (TKN)");
String CTOKEN = (String) Lrequest.get("Token");
// Document TResolve = dCollection.find(eq("type", 3)).first();
Document accountServer;
String TKN;
String Password;
String Fname;
String UserName;
String Email;
String keychainUUID;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
if (!(accountServer == null)) {
TKN = (String) accountServer.get("Token");
if (accountServer.get("Status").equals(true)) {
if (TKN.equals(CTOKEN)) {
TKN = (String) accountServer.get("Token");
Password = (String) accountServer.get("Password");
Fname = (String) accountServer.get("FName");
Email = (String) accountServer.get("Email");
UserName = (String) accountServer.get("User");
lastNet = (String) accountServer.get("lastNet");
keychainUUID = (String) accountServer.get("UUID");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
BasicDBObject updateQuery8 = new BasicDBObject();
BasicDBObject updateQuery9 = new BasicDBObject();
BasicDBObject updateQuery10 = new BasicDBObject();
BasicDBObject updateQuery12 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 8));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery3.append("$set",
new BasicDBObject().append("Path", "Path has been removed from the service, please update to remove this message."));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery8.append("$set",
new BasicDBObject().append("Token", TKN));
updateQuery9.append("$set",
new BasicDBObject().append("keychainUUID", keychainUUID));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
if (legacy) {
if ((Boolean) Filter.get("legacyPRDisable") == true) {
BasicDBObject updateQuery11 = new BasicDBObject();
updateQuery11.append("$set",
new BasicDBObject().append("home", Filter.get("legacyHome")));
updateQuery12.append("$set",
new BasicDBObject().append("hs",true));
dCollection.updateOne(searchQuery, updateQuery11);
dCollection.updateOne(searchQuery, updateQuery12);
}
} else {
if (Filter.get("customHome").equals(true)) {
BasicDBObject updateQuery11 = new BasicDBObject();
updateQuery11.append("$set",
new BasicDBObject().append("home", Filter.get("valHome")));
updateQuery12.append("$set",
new BasicDBObject().append("hs",true));
dCollection.updateOne(searchQuery, updateQuery11);
dCollection.updateOne(searchQuery, updateQuery12);
} else {
updateQuery12.append("$set",
new BasicDBObject().append("hs",false));
dCollection.updateOne(searchQuery, updateQuery12);
}
}
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery9);
dCollection.updateOne(searchQuery, updateQuery6);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
localNet.macRead(IPA, lastNet, Email, UserName, TKN);
} else {
System.out.println("Login Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 11));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Login Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (MongoCommandException ERC) {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
//delegationTimer.trigger();
}
}
if (requesttype == 18) {
if ((Boolean) Filter.get("gameActive") == true) {
//Deprecated, a killswitch has been added under rgcon in the field "gameActive"
//TOKEN LOGIN FOR GAME, DOES NOT SEND EMAIL, LAUNCHER WILL NOT USE THIS.
System.out.println("Game Login");
String CTOKEN = (String) Lrequest.get("Token");
Document accountServer;
String TKN;
String Password;
String Fname;
String UserName;
String Email;
String Uid;
System.out.println("VarInit");
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
System.out.println("PollServer");
TKN = (String) accountServer.get("Token");
System.out.println("TokenPulled");
if (accountServer.get("Status").equals(true)) {
if (TKN.equals(CTOKEN)) {
System.out.println("TokenGood");
TKN = (String) accountServer.get("Token");
Password = (String) accountServer.get("Password");
Fname = (String) accountServer.get("FName");
Email = (String) accountServer.get("Email");
// Uid = (String) accountServer.get("Uid");
UserName = (String) accountServer.get("User");
System.out.println("GotAccount");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
Filter = RGFilter.find(eq("rgkey", "UAROCKS")).first();
String apiV = (String) Filter.get("gameAPI");
String MOTD = (String) Filter.get("motd");
System.out.println("ApiGrabbed");
System.out.println("initBasicDBObject");
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery5 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
BasicDBObject updateQuery8 = new BasicDBObject();
BasicDBObject updateQuery9 = new BasicDBObject();
BasicDBObject updateQuery10 = new BasicDBObject();
// BasicDBObject updateQuery11 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 8));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery3.append("$set",
new BasicDBObject().append("Path", "API_DENY_PATHFETCH"));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery5.append("$set",
new BasicDBObject().append("Password", Password));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
updateQuery8.append("$set",
new BasicDBObject().append("Token", TKN));
updateQuery9.append("$set",
new BasicDBObject().append("api", apiV));
updateQuery10.append("$set",
new BasicDBObject().append("motd", MOTD));
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery10);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery5);
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery9);
dCollection.updateOne(searchQuery, updateQuery6);
//delegationTimer.trigger();
System.out.println("Pushed");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
System.out.println("Login Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 11));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (MongoCommandException ERC) {
System.out.println("Mongodb Error " + ERC);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
//delegationTimer.trigger();
}
} else {
System.out.println("Login rejected, game client EOS has been reached.");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 10) {
if (legacy && (Boolean) Filter.get("legacyPRDisable") == true) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 52));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Aborted Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
System.out.println("Account Creation Request");
Document DServer = dCollection.find(eq("_id", ClientID)).first();
String User = (String) DServer.get("User");
String Password = (String) DServer.get("Password");
String Email = (String) DServer.get("Email");
String FName = (String) DServer.get("FName");
if ((Boolean) Filter.get("creationEnabled")) {
String sourcet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sbt = new StringBuilder();
Random random = new Random();
int tokenlength = 60;
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
String Token = "OCST" + sbt.toString();
//Above makes token, it will be remade if it already exists
String source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sb = new StringBuilder();
int length = 40;
for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length());
char randomChar = source.charAt(index);
sb.append(randomChar);
}
String UUID = sb.toString();
//Above makes UUID, will be remade if it already exists.
try {
Document DupeEmail = accountS.find(eq("Email", Email)).first();
String DUPEEMAIL = (String) DupeEmail.get("Email");
if (DUPEEMAIL.equals(null)) {
Document DupeUser = accountS.find(eq("User", User)).first();
String DUPE = (String) DupeUser.get("User");
}
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 6));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} catch (Exception exr) {
System.out.println("Username & Email Is Open");
try {
Document DupeToken = accountS.find(eq("Token", Token)).first();
String DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Got Token from request");
Boolean TokenOpen = false;
while (TokenOpen == false) {
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
Token = sbt.toString();
try {
DupeToken = accountS.find(eq("Token", Token)).first();
DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Token Is Reserved, Try Again.");
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
} catch (Exception exDr) {
TokenOpen = true;
System.out.println("Token Free (While EXP)");
}
}
} catch (Exception token) {
System.out.println("Working on UUID");
try {
Document DupeUUID = accountS.find(eq("UUID", UUID)).first();
String DupeUUIDS = (String) DupeUUID.get("UUID");
System.out.println("Got Gen UUID");
Boolean UUIDOPEN = false;
while (UUIDOPEN == false) {
length = 40;
sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length());
char randomChar = source.charAt(index);
sb.append(randomChar);
}
String UUIDGEN = sb.toString();
try {
System.out.println("Retry UUID");
DupeUUID = accountS.find(eq("UUID", UUID)).first();
DupeUUIDS = (String) DupeUUID.get("UUID");
System.out.println("UUID Is Reserved, Try Again.");
length = 40;
sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length());
char randomChar = source.charAt(index);
sb.append(randomChar);
}
UUIDGEN = sb.toString();
UUID = UUIDGEN;
} catch (Exception exDr) {
UUIDOPEN = true;
System.out.println("UUID Free (While EXP)" + exDr);
}
}
} catch (NullPointerException uuid) {
System.out.println("UUID Free");
}
System.out.println("Token Free");
System.out.println("Token & UUID Free (Main)");
System.out.println("Creating.");
Document createForm = new Document();
createForm.append("User", User);
createForm.append("Password", Password);
createForm.append("Status", true);
createForm.append("Flagged", false);
createForm.append("Email", Email);
createForm.append("FName", FName);
createForm.append("Entitlements", "NA");
createForm.append("Freinds", " ");
createForm.append("Token", Token);
createForm.append("UUID", UUID);
createForm.append("Control", 1);
createForm.append("Upgrade", 0);
createForm.append("Version", "2");
createForm.append("keyStatus", false);
//createForm.append("Uid",uid);
createForm.append("lastNet", IPA);
accountS.insertOne(createForm);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
secureCalls.accountCreationComplete(Email, User, UUID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 4));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Finished Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
try { secureCalls.accountCreationDisabled(Email, User);} catch (Exception ex) {System.out.println("Unable to send disabled msg to user");
}
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 52));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Finished Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
}
if (requesttype == 20)
//TODO rewrite to just need username, password will be set by system later
{
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
System.out.println("Shadow Account Creation Request");
Document DServer = dCollection.find(eq("_id", ClientID)).first();
String User = (String) DServer.get("User");
String Password = (String) DServer.get("Password");
// String Email = (String) DServer.get("Email");
String FName = User;
String sourcet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sbt = new StringBuilder();
Random random = new Random();
int tokenlength = 60;
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
String Token = "OCST" + sbt.toString();
try {
Document DupeUser = accountS.find(eq("User", User)).first();
String DUPE = (String) DupeUser.get("User");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 6));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("User Exists");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} catch (Exception exr) {
System.out.println("Username Is Open");
try {
Document DupeToken = accountS.find(eq("Token", Token)).first();
String DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Got Token from request");
Boolean TokenOpen = false;
while (TokenOpen == false) {
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
Token = sbt.toString();
try {
DupeToken = accountS.find(eq("Token", Token)).first();
DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Token Is Reserved, Try Again.");
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
} catch (Exception exDr) {
TokenOpen = true;
System.out.println("Token Free (While EXP)");
}
}
} catch (Exception exrs) {
System.out.println("Token Free (Main)");
System.out.println("Creating.");
Document createForm = new Document();
createForm.append("User", User);
createForm.append("Status", true);
createForm.append("limited", true);
createForm.append("Flagged", false);
createForm.append("Password", Password);
createForm.append("FName", FName);
createForm.append("Entitlements", "NA");
createForm.append("Token", Token);
createForm.append("Control", 1);
accountS.insertOne(createForm);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 4));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Finished Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
}
if (requesttype == 21) {
//Friends Network Login Goes Here, Fun.
}
if (requesttype == 48) {
System.out.println("Launcher Startup Request");
String lV = (String) Lrequest.get("version");
String platKey = (String) Lrequest.get("key");
System.out.println("GrabbedInfo");
try {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
Filter = RGFilter.find(eq("rgkey", "UAROCKS")).first();
String pKey = (String) Filter.get("platformKey");
String version = (String) Filter.get("platformVersion");
String platformUpdateNotes = (String) Filter.get("platformUpdateNotes");
String dr = (String) Filter.get("deniedmsg");
String nw = (String) Filter.get("lnews");
System.out.println("ApiGrabbed");
System.out.println("initBasicDBObject");
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
BasicDBObject updateQuery8 = new BasicDBObject();
// BasicDBObject updateQuery11 = new BasicDBObject();
if (pKey.equals(platKey)) {
if (lV.equals(version)) {
System.out.println("Approved");
updateQuery.append("$set",
new BasicDBObject().append("type", 49));
} else {
System.out.println("UpdateRequred");
updateQuery.append("$set",
new BasicDBObject().append("type", 51));
}
} else {
updateQuery.append("$set",
new BasicDBObject().append("type", 50));
updateQuery7.append("$set",
new BasicDBObject().append("dn", dr));
System.out.println("Denied");
}
if (legacy) {
if ((Boolean) Filter.get("legacyPRDisable") == true) {
updateQuery2.append("$set",
new BasicDBObject().append("uNotes", (String) Filter.get("legacyPRUpdateDisplay")));
updateQuery3.append("$set",
new BasicDBObject().append("pushV", version));
updateQuery4.append("$set",
new BasicDBObject().append("keyReq", pKey));
updateQuery8.append("$set",
new BasicDBObject().append("news", (String) Filter.get("legacyNews")));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
updateQuery7.append("$set",
new BasicDBObject().append("dn", dr));
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery6);
} else {
updateQuery2.append("$set",
new BasicDBObject().append("uNotes", platformUpdateNotes));
updateQuery3.append("$set",
new BasicDBObject().append("pushV", version));
updateQuery4.append("$set",
new BasicDBObject().append("keyReq", pKey));
updateQuery8.append("$set",
new BasicDBObject().append("news", nw));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
updateQuery7.append("$set",
new BasicDBObject().append("dn", dr));
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery6);
}
} else {
updateQuery2.append("$set",
new BasicDBObject().append("uNotes", platformUpdateNotes));
updateQuery3.append("$set",
new BasicDBObject().append("pushV", version));
updateQuery4.append("$set",
new BasicDBObject().append("keyReq", pKey));
updateQuery8.append("$set",
new BasicDBObject().append("news", nw));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
updateQuery7.append("$set",
new BasicDBObject().append("dn", dr));
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery6);
}
//delegationTimer.trigger();
System.out.println("Pushed");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} catch (MongoCommandException ERC) {
System.out.println("Mongodb Error " + ERC);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
//delegationTimer.trigger();
}
}
if (requesttype == 61) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
System.out.println("Init ClientTraceback");
String policyDocument;
try {
policyDocument = Files.readString(Path.of(System.getProperty("user.home") + "/ocs/policy/launcher/legal/eula.txt"));
} catch (Exception EXR) {
System.out.println("Unable to pull file, fallback.");
policyDocument = "Policy file does not exist on server. This is an issue on our end. Error ID: " + EXR;
}
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 62));
updateQuery2.append("$set",
new BasicDBObject().append("policyDocument", policyDocument));
updateQuery3.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
if (requesttype == 63) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
System.out.println("Init ClientTraceback");
String policyDocument;
try {
// File homedir = new File(System.getProperty("user.home"));
policyDocument = Files.readString(Path.of(System.getProperty("user.home") + "/ocs/policy/launcher/legal/eula.txt"));
} catch (Exception EXR) {
System.out.println("Unable to pull file, fallback.");
policyDocument = "Policy file does not exist on server. This is an issue on our end. Error ID: " + EXR;
}
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 64));
updateQuery2.append("$set",
new BasicDBObject().append("policyDocument", policyDocument));
updateQuery3.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
if (requesttype == 65) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
System.out.println("Collecting Error Data");
File homedir = new File(System.getProperty("user.home"));
String applicationName = Lrequest.get("applicationName").toString();
String bugType = Lrequest.get("bugType").toString();
String bugDetails = Lrequest.get("bugDetails").toString();
String bugSeverity = Lrequest.get("bugSeverity").toString();
String UUID = Lrequest.get("UUID").toString();
String timeCurrent = LocalDateTime.now().toString(); //ISO-8601: yyyy-MM-ddTHH:mm:ss.S
try {
File myObj = new File(homedir + "/ocs/logs/" + applicationName + UUID + timeCurrent + ".txt");
if (myObj.createNewFile()) {
System.out.println("Log File created: " + myObj.getName());
FileWriter writer = new FileWriter(homedir + "/ocs/logs/" + applicationName + UUID + timeCurrent + ".txt", true);
writer.write("This bug report is for: " + applicationName);
writer.write("\r\n");
writer.write("The bug severity is level: " + bugSeverity);
writer.write("\r\n");
writer.write("The bug type is: " + bugType);
writer.write("\r\n");
writer.write("More bug details: " + bugDetails);
writer.write("\r\n");
writer.write("This is auto generated by the Obsidian Core backend services");
writer.write("\r\n");
writer.write("Submission Time (Local To Server): " + timeCurrent);
writer.close();
} else {
System.out.println("Log already exists.");
}
} catch (IOException e) {
System.out.println("An error occurred when attempting to log." + e);
}
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
delegationServices.TargetDelete(Lrequest.get("_id"));
}
if (requesttype == 66) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
System.out.println("Collecting Error Data");
File homedir = new File(System.getProperty("user.home"));
String applicationName = Lrequest.get("applicationName").toString();
String bugType = Lrequest.get("bugType").toString();
String bugDetails = Lrequest.get("bugDetails").toString();
String bugSeverity = Lrequest.get("bugSeverity").toString();
String bugLog = Lrequest.get("bugLog").toString();
String UUID = Lrequest.get("UUID").toString();
String timeCurrent = LocalDateTime.now().toString(); //ISO-8601: yyyy-MM-ddTHH:mm:ss.S
try {
File myObj = new File(homedir + "/ocs/logs/" + applicationName + UUID + timeCurrent + ".txt");
if (myObj.createNewFile()) {
System.out.println("Log File created: " + myObj.getName());
FileWriter writer = new FileWriter(homedir + "/ocs/logs/" + applicationName + UUID + timeCurrent + ".txt", true);
writer.write("This bug report is for: " + applicationName);
writer.write("\r\n");
writer.write("The bug severity is level: " + bugSeverity);
writer.write("\r\n");
writer.write("The bug type is: " + bugType);
writer.write("\r\n");
writer.write("More bug details: " + bugDetails);
writer.write("\r\n");
writer.write("This is auto generated by the Obsidian Core backend services");
writer.write("\r\n");
writer.write("Submission Time (Local To Server): " + timeCurrent);
writer.write("\r\n");
writer.write("Full log file:");
writer.write("\r\n");
writer.write(bugLog);
writer.close();
} else {
System.out.println("Log already exists.");
}
} catch (IOException e) {
System.out.println("An error occurred while attempting to log." + e);
}
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
delegationServices.TargetDelete(Lrequest.get("_id"));
}
if (requesttype == 71) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
System.out.println("Collecting Telemetry Data");
File homedir = new File(System.getProperty("user.home"));
String applicationName = Lrequest.get("applicationName").toString();
String telemetryType = Lrequest.get("TelemetryType").toString();
String telemetryDetails = Lrequest.get("TelemetryDetails").toString();
String UUID = Lrequest.get("UUID").toString();
String timeCurrent = LocalDateTime.now().toString(); //ISO-8601: yyyy-MM-ddTHH:mm:ss.S
try {
File myObj = new File(homedir + "/ocs/telemetry/" + UUID + "/" + applicationName + timeCurrent + ".txt");
File myFold = new File(homedir + "/ocs/telemetry/" + UUID);
myFold.mkdir();
if (myObj.createNewFile()) {
System.out.println("Log File created: " + myObj.getName());
FileWriter writer = new FileWriter(homedir + "/ocs/telemetry/" + UUID + "/" + applicationName + timeCurrent + ".txt", true);
writer.write("This Telemetry report is for: " + applicationName);
writer.write("\r\n");
writer.write("Type of telemetry: " + telemetryType);
writer.write("\r\n");
writer.write("Telemetry: " + telemetryDetails);
writer.write("\r\n");
writer.write("This is auto generated by the Obsidian Core backend services");
writer.write("\r\n");
writer.write("Submission Time (Local To Server): " + timeCurrent);
writer.close();
} else {
System.out.println("Log already exists.");
}
} catch (IOException e) {
System.out.println("An error occurred when attempting to log." + e);
}
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
delegationServices.TargetDelete(Lrequest.get("_id"));
}
if (requesttype == 72) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
System.out.println("Collecting Telemetry Data");
File homedir = new File(System.getProperty("user.home"));
String applicationName = Lrequest.get("applicationName").toString();
String telemetryType = Lrequest.get("telemetryType").toString();
String telemetryDetails = Lrequest.get("telemetryDetails").toString();
String telemetryLog = Lrequest.get("telemetryLog").toString();
String UUID = Lrequest.get("UUID").toString();
String timeCurrent = LocalDateTime.now().toString(); //ISO-8601: yyyy-MM-ddTHH:mm:ss.S
try {
File myObj = new File(homedir + "/ocs/telemetry/" + UUID + "/" + applicationName + "logfile" + timeCurrent + ".txt");
File myFold = new File(homedir + "/ocs/telemetry/" + UUID);
myFold.mkdir();
if (myObj.createNewFile()) {
System.out.println("Log File created: " + myObj.getName());
FileWriter writer = new FileWriter(homedir + "/ocs/telemetry/" + UUID + "/" + applicationName + "logfile" + timeCurrent + ".txt", true);
writer.write("This telemetry report is for: " + applicationName);
writer.write("\r\n");
writer.write("The telemetry type is: " + telemetryType);
writer.write("\r\n");
writer.write("More telemetry details: " + telemetryDetails);
writer.write("\r\n");
writer.write("This is auto generated by the Obsidian Core backend services");
writer.write("\r\n");
writer.write("Submission Time (Local To Server): " + timeCurrent);
writer.write("\r\n");
writer.write("Full log file:");
writer.write("\r\n");
writer.write(telemetryLog);
writer.close();
} else {
System.out.println("telemetry already exists. (wow that's rare)");
}
} catch (IOException e) {
System.out.println("An error occurred while attempting to save telemetry." + e);
}
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
delegationServices.TargetDelete(Lrequest.get("_id"));
}
if (requesttype == 68) {
System.out.println("Verifying OTK");
String userKey = (String) Lrequest.get("otk");
String clientUUID = (String) Lrequest.get("uuid");
String serverUUID;
userKey = userKey.toUpperCase();
Document accountServer;
try {
accountServer = accountS.find(eq("delOTK", userKey)).first();
serverUUID = (String) accountServer.get("UUID");
if (accountServer.get("Status").equals(true)) {
if (clientUUID.equalsIgnoreCase(serverUUID)) {
System.out.println("This key is correct.");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 69));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
offBoarding((String) accountServer.get("Email"), (String) accountServer.get("User"), (String) accountServer.get("FName"));
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
accountS.deleteOne(accountServer);
} else {
System.out.println("This key is incorrect");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 70));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else
{
System.out.println("This key is incorrect, account is banned.");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 70));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (Exception ERC) {
System.out.println("This key is incorrect." + ERC);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 70));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 67) {
if (legacy && (Boolean) Filter.get("legacyPRDisable") == true) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 52));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Aborted Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else
{
String OTK = "keyNotSetDueToError(ERR24)";
Boolean keyStatus = false;
//default false, since will be set to true if the measurement exists on linked account
String accountUUID = (String) Lrequest.get("uuid");
Document linkedAccount = accountS.find(eq("UUID", accountUUID)).first();
try {
keyStatus = (boolean) linkedAccount.get("delStatus");
} catch (Exception NPE) {
keyStatus = false;
}
if (keyStatus == false) {
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sb = new StringBuilder();
Random random = new Random();
int length = 15;
for (int i = 0; i < length; i++) {
int index = random.nextInt(alphabet.length());
char randomChar = alphabet.charAt(index);
sb.append(randomChar);
}
OTK = sb.toString();
BasicDBObject deleteKey = new BasicDBObject();
BasicDBObject deleteKeyStatus = new BasicDBObject();
BasicDBObject deleteTie = new BasicDBObject();
deleteTie.append("UUID", accountUUID);
deleteKey.append("$set",
new BasicDBObject().append("delOTK", OTK));
deleteKeyStatus.append("$set",
new BasicDBObject().append("delStatus", true));
accountS.updateOne(deleteTie, deleteKey);
accountS.updateOne(deleteTie, deleteKeyStatus);
otkDeletionEmail((String) linkedAccount.get("Email"), OTK, (String) linkedAccount.get("User"));
} else {
otkDeletionEmailResend((String) linkedAccount.get("Email"), (String) linkedAccount.get("delOTK"), (String) linkedAccount.get("User"));
}
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
BasicDBObject clearUO = new BasicDBObject();
clearUO.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(clearCL, clearUO);
TargetDelete(ClientID);
}
}
if (requesttype == 81) {
System.out.println("Login Request (TKN)");
String CTOKEN = (String) Lrequest.get("token");
// Document TResolve = dCollection.find(eq("type", 3)).first();
Document accountServer;
String TKN;
String Password;
String Fname;
String UserName;
String Email;
String keychainUUID;
//String validSession;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
if (!(accountServer == null)) {
TKN = (String) accountServer.get("Token");
/*
validSession = (String) accountServer.get("websession");
This may be added later to serve session tokens, this however will be added before chat is released to the public.
*/
if (accountServer.get("Status").equals(true)) {
if (TKN.equals(CTOKEN)) {
Fname = (String) accountServer.get("FName");
UserName = (String) accountServer.get("User");
keychainUUID = (String) accountServer.get("UUID");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery9 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 82));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery9.append("$set",
new BasicDBObject().append("keychainUUID", keychainUUID));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery9);
dCollection.updateOne(searchQuery, updateQuery6);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
System.out.println("Login Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 86));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 84));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Login Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 86));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (MongoCommandException ERC) {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
//delegationTimer.trigger();
}
}
if (requesttype == 73) {
System.out.println("Login Request (USR&PASS)");
String username = (String) Lrequest.get("user");
String password = (String) Lrequest.get("password");
String session;
String sourcet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
StringBuilder sbt = new StringBuilder();
Random srandom = new Random();
int sidl = 100;
for (int i = 0; i < sidl; i++) {
int index = srandom.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
session = sbt.toString();
Object objid = Lrequest.get("_id");
System.out.println(objid);
Document accountServer;
String Password; String Token;String Fname; String UserName; String Email; String keychainUUID; Boolean accountKeyStatus = false;
try {
accountServer = accountS.find(eq("User", username)).first();
Password = (String) accountServer.get("Password");
Email = (String) accountServer.get("Email");
if (accountServer.get("Status").equals(true)) {
if (accountServer.get("Version").equals("1")) {
try {
accountKeyStatus = accountServer.getBoolean("keyStatus");
} catch (Exception NPE) {
System.out.println("Assuming False Due To Variable Not Existing For User.");
accountKeyStatus = false;
}
if (accountKeyStatus == false) {
System.out.println(accountKeyStatus);
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sb = new StringBuilder();
Random random = new Random();
int length = 15;
for (int i = 0; i < length; i++) {
int index = random.nextInt(alphabet.length());
char randomChar = alphabet.charAt(index);
sb.append(randomChar);
}
String OTK = sb.toString();
BasicDBObject searchQuery = new BasicDBObject();
BasicDBObject keyApplicationIndex = new BasicDBObject();
searchQuery.append("_id", objid);
keyApplicationIndex.append("User", username);
secureCalls.oneTimeKeyEmail(((String) accountServer.get("Email")), OTK, username);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject keyApply = new BasicDBObject();
BasicDBObject keyAccountState = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 53));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
keyAccountState.append("$set",
new BasicDBObject().append("keyStatus", true));
keyApply.append("$set",
new BasicDBObject().append("tempKey", OTK));
accountS.updateOne(keyApplicationIndex, keyApply);
accountS.updateOne(keyApplicationIndex, keyAccountState);
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
accountKeyStatus = true;
} else {
System.out.println("RS1");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", objid);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 53));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(objid);
System.out.println("Deleted");
}
} else {
System.out.println("RSC");
if (Password.equals(password)) {
System.out.println("R3c");
Token = (String) accountServer.get("Token");
Fname = (String) accountServer.get("FName");
Email = (String) accountServer.get("Email");
UserName = (String) accountServer.get("User");
lastNet = (String) accountServer.get("lastNet");
keychainUUID = (String) accountServer.get("UUID");
System.out.println("4");
BasicDBObject searchQuery = new BasicDBObject();
BasicDBObject searchQueryAD = new BasicDBObject();
searchQuery.append("_id", objid);
searchQueryAD.append("UUID", keychainUUID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
BasicDBObject updateQuery8 = new BasicDBObject();
BasicDBObject updateQuery9 = new BasicDBObject();
BasicDBObject updateQueryAD = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 8));
updateQuery1.append("$set",
new BasicDBObject().append("Token", Token));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery3.append("$set",
new BasicDBObject().append("Path", "Path has been removed from the service, please update to remove this message."));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
updateQuery8.append("$set",
new BasicDBObject().append("keychainUUID", keychainUUID));
updateQuery9.append("$set",
new BasicDBObject().append("session", session));
updateQueryAD.append("$set",
new BasicDBObject().append("websession", session));
System.out.println("3");
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery9);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery6);
accountS.updateOne(searchQueryAD,updateQueryAD);
/*The last update allows the server to add the current authed web session, home page
will verify session staus, if it is invalid the user will be pushed to create a new session.
*/
System.out.println("2");
//delegationTimer.trigger();
System.out.println("1");
delegationTimer.DeleteTargetRequestByID(objid);
System.out.println("clear");
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", objid);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(objid);
}
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id",Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 11));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(objid);
}
} catch (Exception ERC) {
System.out.println("Something Went Wrong: " + ERC.getLocalizedMessage());
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id",Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(objid);
}
}
if (requesttype == 74) {
System.out.println("Login Request (TKN-WB)");
String CTOKEN = (String) Lrequest.get("token");
// Document TResolve = dCollection.find(eq("type", 3)).first();
Document accountServer;
String TKN;
String Password;
String Fname;
String UserName;
String Email;
String keychainUUID;
String validSession;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
if (!(accountServer == null)) {
TKN = (String) accountServer.get("Token");
validSession = (String) accountServer.get("websession");
if (accountServer.get("Status").equals(true)) {
if (TKN.equals(CTOKEN) && Lrequest.get("sessionID").equals(validSession)) {
TKN = (String) accountServer.get("Token");
Password = (String) accountServer.get("Password");
Fname = (String) accountServer.get("FName");
Email = (String) accountServer.get("Email");
UserName = (String) accountServer.get("User");
validSession = (String) accountServer.get("session");
keychainUUID = (String) accountServer.get("UUID");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
BasicDBObject updateQuery8 = new BasicDBObject();
BasicDBObject updateQuery9 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 8));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery8.append("$set",
new BasicDBObject().append("Token", TKN));
updateQuery9.append("$set",
new BasicDBObject().append("keychainUUID", keychainUUID));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery8);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery9);
dCollection.updateOne(searchQuery, updateQuery6);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
System.out.println("Login Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 11));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Login Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (MongoCommandException ERC) {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
//delegationTimer.trigger();
}
}
if (requesttype == 75) {
System.out.println("Link request");
String CTOKEN = (String) Lrequest.get("token");
String platform = (String) Lrequest.get("linkplatform");
String email = (String) Lrequest.get("emailtoken");
String id = (String) Lrequest.get("linktoken");
Document accountServer;
String TKN;
String Password;
String Fname;
String UserName;
String Email;
String keychainUUID;
String validSession;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
if (!(accountServer == null)) {
TKN = (String) accountServer.get("Token");
if (accountServer.get("Status").equals(true)) {
if (TKN.equals(CTOKEN)) {
if (accountServer.get(platform+"idstatus") == null) {
Email = (String) accountServer.get("Email");
UserName = (String) accountServer.get("User");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject searchQueryASC = new BasicDBObject();
searchQueryASC.append("Token", TKN);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQueryAD = new BasicDBObject();
BasicDBObject updateQueryADBS = new BasicDBObject();
BasicDBObject externalEmail = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 76));
updateQuery4.append("$set",
new BasicDBObject().append("status", true));
updateQueryAD.append("$set",
new BasicDBObject().append(platform + "id", id));
updateQueryADBS.append("$set",
new BasicDBObject().append(platform + "idstatus", true));
externalEmail.append("$set",
new BasicDBObject().append(platform + "email", email));
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
accountS.updateOne(searchQueryASC, updateQueryAD);
accountS.updateOne(searchQueryASC, externalEmail);
accountS.updateOne(searchQueryASC, updateQueryADBS);
dCollection.updateOne(searchQuery, updateQuery4);
secureCalls.accountLinked(Email, platform, UserName);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
//Make social credit profile if it doesn't exist
if (platform.equals("Discord")) {
Document user = scCollection.find(eq("User", id)).first();
if (user == null)
{ Document document = new Document();
document.append("User", id);
document.append("UserFreindly", accountServer.get("User").toString());
document.append("Credits", 1000);
document.append("npTH","0");
document.append("controlVAR", 0);
document.append("wordRC",3);
document.append("banUntil",3);
document.append("npMUTE", false);
scCollection.insertOne(document);
System.out.println("Created a profile with Obsidian Core Bot Services.");
} else {
System.out.println("User already registered with bot..");
}
}
} else {
System.out.println("Already linked");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 77));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Link Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 77));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 77));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Login Failure");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 9));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (MongoCommandException ERC) {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
//delegationTimer.trigger();
}
}
if (requesttype == 78) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
System.out.println("Collecting Telemetry Data");
File homedir = new File(System.getProperty("user.home"));
String applicationName = Lrequest.get("useragent").toString();
// String telemetryType = Lrequest.get("telemetryType").toString();
String mclog = Lrequest.get("log").toString();
String IGN = Lrequest.get("ign").toString();
String timeCurrent = LocalDateTime.now().toString(); //ISO-8601: yyyy-MM-ddTHH:mm:ss.S
try {
File myObj = new File(homedir + "/crad/telemetry/" + IGN + "/" + timeCurrent + ".txt");
File myFold = new File(homedir + "/crad/telemetry/" + IGN);
myFold.mkdir();
if (myObj.createNewFile()) {
System.out.println("Log File created: " + myObj.getName());
FileWriter writer = new FileWriter(homedir + "/crad/telemetry/" + IGN + "/" + timeCurrent + ".txt", true);
writer.write("This telemetry report is for: " + applicationName);
writer.write("\r\n");
writer.write("\r\n");
writer.write("This is auto generated by the Obsidian Core backend services (For Create Research & Development.");
writer.write("\r\n");
writer.write("Submission Time (Local To Server): " + timeCurrent);
writer.write("\r\n");
writer.write("Full log file:");
writer.write("\r\n");
writer.write(mclog);
writer.close();
} else {
System.out.println("telemetry already exists. (wow that's rare)");
}
} catch (IOException e) {
System.out.println("An error occurred while attempting to save telemetry." + e);
}
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
if (requesttype == 79) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
System.out.println("Init ClientTraceback");
String policyDocument;
try {
policyDocument = Files.readString(Path.of(System.getProperty("user.home") + "/ocs/policy/launcher/legal/eula.txt"));
} catch (Exception EXR) {
System.out.println("Unable to pull file, fallback.");
policyDocument = "Policy file does not exist on server. This is an issue on our end. Error ID: " + EXR;
}
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 80));
updateQuery2.append("$set",
new BasicDBObject().append("policyDocument", policyDocument));
updateQuery3.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
if (requesttype == 87) {
String CTOKEN = (String) Lrequest.get("Token");
String platform = (String) Lrequest.get("Platform");
// Document TResolve = dCollection.find(eq("type", 3)).first();
Document accountServer;
String level;
String token;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
if (!(accountServer == null)) {
System.out.println("HERE WE GO");
String TKN = (String) accountServer.get("Token");
if (accountServer.get("Status").equals(true)) {
System.out.println("Account Is Good");
if (TKN.equals(CTOKEN)) {
System.out.println("Token is good");
if ((Boolean) accountServer.get(platform + "idstatus")) {
System.out.println("Platform is linked and enabled");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 89));
updateQuery2.append("$set",
new BasicDBObject().append("id", accountServer.get(platform + "id").toString()));
updateQuery3.append("$set",
new BasicDBObject().append("Link_Enabled", true));
updateQuery4.append("$set",
new BasicDBObject().append("platform", platform));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery,updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Done.");
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
accountServer.get(platform + "id");
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 90));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
} else {
System.out.println("Invalid user");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} catch (Exception ex) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 91) {
try
{
String accessLevel = Lrequest.get("level").toString();
Document user = scCollection.find(eq("User", Lrequest.get("ID").toString())).first();
int currency = (int) user.get("Credits");
if (!user.equals(null))
{
if (accessLevel.equals("basic")) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 93));
updateQuery2.append("$set",
new BasicDBObject().append("isTrustedLevel", false));
updateQuery3.append("$set",
new BasicDBObject().append("UserCredit", currency));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery,updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
if (accessLevel.equals("system")) {}
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
System.out.println("thing");
}
} catch (NullPointerException ex)
{
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 94));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
catch (Exception exr) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 95) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery5 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 96));
updateQuery2.append("$set",
new BasicDBObject().append("ServerVersion", variables.serverVersion));
updateQuery3.append("$set",
new BasicDBObject().append("ServerRegion", variables.serverRegion));
if ((Boolean) Filter.get("aboutServiceStatus")) {
updateQuery4.append("$set",
new BasicDBObject().append("ServiceStatus", Filter.get("statusMessage")));
} else {
updateQuery4.append("$set",
new BasicDBObject().append("ServiceStatus", "Service is offline."));
}
if (legacy) {
updateQuery5.append("$set",
new BasicDBObject().append("FeatureLevel", "Limited Features"));
} else {
updateQuery5.append("$set",
new BasicDBObject().append("FeatureLevel", "Full Features"));
}
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery,updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
} else {
System.out.println("Malformed Request, Non Recoverable (Request Type Not Found)");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
BasicDBObject clearCL = new BasicDBObject();
clearCL.append("_id", ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
}
} catch (Exception Erp) {
System.out.println("Malformed Request, Non Recoverable ErrorInfo: ");
Erp.printStackTrace();
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id",Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
updateQuery1.append("$set",
new BasicDBObject().append("pos", "uk"));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
public static void Purge() {
BasicDBObject searchQueryT = new BasicDBObject();
BasicDBObject searchQueryF = new BasicDBObject();
searchQueryT.append("status", true);
searchQueryF.append("status", false);
dCollection.deleteMany(searchQueryT);
dCollection.deleteMany(searchQueryF);
System.out.println("Flushed Server");
}
public static void TargetDelete(Object ID) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ID);
dCollection.deleteMany(searchQuery);
System.out.println("Flushed a targeted request (CID) from the server");
}
public static void TargetDeleteByID(Object ID) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ID);
dCollection.deleteMany(searchQuery);
System.out.println("Flushed a targeted request (CID) from the server");
}
public static void TargetDeleteRID(int CID) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("rid", CID);
dCollection.deleteMany(searchQuery);
System.out.println("Flushed a targeted request (RID) from the server");
}
public static void userAuthetication() {
Lrequest = dCollection.find(eq("status", false)).first();
if (!(Lrequest == null)) {
delegationProcesser();
}
}
}