package com.jamesquinley.DelegationServices; 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.util.UUID; 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 dCollection; static MongoDatabase RGFilterDB; static MongoCollection RGFilter; public static void connectionInit (Boolean beta) { if (beta == true) { scReadconnectionString = new ConnectionString("mongodb+srv://serverClientBeta:Unz6c3I0wjrUVBIf@delegationrequest.qnvfa.mongodb.net/mDelegationRequest?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+srv://DelegationServerClient:UNxldb8abSJkWscG@account.ufgrh.mongodb.net/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 accountS = accountDatabase.getCollection("UserPass"); static MongoCollection FNETDOC = accountDatabase.getCollection("FNet"); static int RequestR; //still need to config public static String lastNet = null; public static String Macid = null; public static void delegationProcesser() { Document Filter; int ClientID = 0; Document Lrequest = dCollection.find(eq("status", false)).first(); if ((boolean) Lrequest.get("status") == true) { System.out.println("This request was completed, ignoring"); } else { try { try { ClientID = (int) Lrequest.get("clientid"); } catch (Exception exrp) { delegationTimer.DeleteTargetRequest(ClientID); } try { Macid = (String) Lrequest.get("net"); } catch (Exception exrp) { System.out.println("Failed To Get MacAdr"); delegationTimer.DeleteTargetRequest(ClientID); } String RG = (String) Lrequest.get("rg"); Filter = RGFilter.find(eq("rgkey", "UAROCKS")).first(); String blockedRG = (String) Filter.get("rgflag"); if (blockedRG.contains(RG)) { System.out.println("User Is Trying To Join From A Blocked Region, Halted Login Request."); 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", 19)); updateQuery1.append("$set", new BasicDBObject().append("status", true)); dCollection.updateOne(searchQuery, updateQuery); dCollection.updateOne(searchQuery, updateQuery1); delegationTimer.DeleteTargetRequest(ClientID); } 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("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 == 20 || requesttype == 21 || requesttype == 41 || requesttype == 18) { if ( requesttype == 7 || requesttype == 12 || requesttype == 4 || requesttype == 5 || requesttype == 6 || requesttype == 19 || requesttype == 12) { System.out.println("An Excluded Request (7MAL, 12S, 4C, 5C, 6C) Has Been Detected, Ignoring"); //Thinking of moving all purge timer call to here to centralize deletion decision. System.out.println(requesttype); } if (requesttype == 41) { System.out.println("Update Request"); BasicDBObject searchQuery = new BasicDBObject(); BasicDBObject SqS = new BasicDBObject(); SqS.append("clientid", 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.DeleteTargetRequest(ClientID); } if (requesttype == 0) { int CTOKEN = (int) Lrequest.get("Token"); System.out.println("Sync Request (Read)"); Document accountServer; String Password; int Token; String Fname; String Path; String UserName; String Email; try { accountServer = accountS.find(eq("Token", CTOKEN)).first(); Token = (int) accountServer.get("Token"); if (accountServer.get("Status").equals(true)) { if (Token == CTOKEN) { Token = (int) accountServer.get("Token"); Password = (String) accountServer.get("Password"); Fname = (String) accountServer.get("FName"); Path = (String) accountServer.get("Path"); Email = (String) accountServer.get("Email"); UserName = (String) accountServer.get("User"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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(); 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)); 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)); 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); delegationTimer.DeleteTargetRequest(ClientID); 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.DeleteTargetRequest(ClientID); //delegationTimer.trigger(); } } else { System.out.println("Banned Account"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } catch(MongoCommandException ERC){ System.out.println("Malformed Request"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } System.out.println("Lets Service This Request: " + ClientID); //sync write request if (requesttype == 1) { System.out.println("Sync Request (Write)"); int CTOKEN = (int) Lrequest.get("Token"); System.out.println("Got Token."); Document accountServer; int Token; String Fname; String Path; String UserName; try { accountServer = accountS.find(eq("Token", CTOKEN)).first(); Token = (int) accountServer.get("Token"); if (accountServer.get("Status").equals(true)) { System.out.println("Account is OK"); if (Token == CTOKEN) { System.out.println("Logged In"); Token = (int) Lrequest.get("Token"); Fname = (String) Lrequest.get("FName"); Path = (String) Lrequest.get("Path"); UserName = (String) Lrequest.get("User"); System.out.println("Got info."); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("Token", Token); BasicDBObject SqS = new BasicDBObject(); SqS.append("clientid", ClientID); BasicDBObject updateQuery = new BasicDBObject(); BasicDBObject updateQuery2 = new BasicDBObject(); BasicDBObject updateQuery3 = new BasicDBObject(); BasicDBObject updateQuery4 = new BasicDBObject(); BasicDBObject updateQuery6 = new BasicDBObject(); System.out.println("Made Objects"); updateQuery.append("$set", new BasicDBObject().append("type", 12)); updateQuery2.append("$set", new BasicDBObject().append("FName", Fname)); updateQuery3.append("$set", new BasicDBObject().append("Path", Path)); updateQuery4.append("$set", new BasicDBObject().append("User", UserName)); updateQuery6.append("$set", new BasicDBObject().append("status", true)); dCollection.updateOne(SqS, updateQuery); dCollection.updateOne(SqS, updateQuery6); accountS.updateOne(searchQuery, updateQuery2); accountS.updateOne(searchQuery, updateQuery3); accountS.updateOne(searchQuery, updateQuery4); System.out.println("Updated Account"); //delegationTimer.trigger(); delegationTimer.DeleteTargetRequest(ClientID); } else { System.out.println("Sync Failure"); 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.DeleteTargetRequest(ClientID); } } else { System.out.println("Banned Account"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } catch(MongoCommandException ERC){ System.out.println("Malformed Request"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } 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; int Token; String Fname; String Path; String UserName; String Email; try { accountServer = accountS.find(eq("User", username)).first(); Password = (String) accountServer.get("Password"); if (accountServer.get("Status").equals(true)) { if (Password.equals(password)) { Token = (int) accountServer.get("Token"); Fname = (String) accountServer.get("FName"); Path = (String) accountServer.get("Path"); Email = (String) accountServer.get("Email"); UserName = (String) accountServer.get("User"); lastNet = (String) accountServer.get("lastNet"); localNet.macRead(Macid,lastNet,Email,UserName,Token); // com.jamesquinley.Asecure.emailVerify.SendEmailThroughGmail(Email, UserName); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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(); 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)); 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)); // System.out.println("Sending Info To Forwarding Server"); 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); //delegationTimer.trigger(); delegationTimer.DeleteTargetRequest(ClientID); } else { BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } else { System.out.println("Banned Account"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } catch (Exception ERC) { BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } if (requesttype == 3) { System.out.println("Login Request (TKN)"); int CTOKEN = (int) Lrequest.get("Token"); // Document TResolve = dCollection.find(eq("type", 3)).first(); Document accountServer; int TKN; String Password; String Fname; String Path; String UserName; String Email; try { accountServer = accountS.find(eq("Token", CTOKEN)).first(); TKN = (int) accountServer.get("Token"); if (accountServer.get("Status").equals(true)) { if (TKN == CTOKEN) { TKN = (int) accountServer.get("Token"); Password = (String) accountServer.get("Password"); Fname = (String) accountServer.get("FName"); Path = (String) accountServer.get("Path"); Email = (String) accountServer.get("Email"); UserName = (String) accountServer.get("User"); lastNet = (String) accountServer.get("lastNet"); localNet.macRead(Macid,lastNet,Email,UserName,TKN); // com.jamesquinley.Asecure.emailVerify.SendEmailThroughGmail(Email, UserName); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", ClientID); 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(); updateQuery.append("$set", new BasicDBObject().append("type", 8)); updateQuery2.append("$set", new BasicDBObject().append("Fname", Fname)); updateQuery3.append("$set", new BasicDBObject().append("Path", Path)); 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)); 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, updateQuery5); dCollection.updateOne(searchQuery, updateQuery6); dCollection.updateOne(searchQuery, updateQuery8); dCollection.updateOne(searchQuery, updateQuery7); //delegationTimer.trigger(); delegationTimer.DeleteTargetRequest(ClientID); } else { System.out.println("Login Failure"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } else { System.out.println("Banned Account"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } catch (MongoCommandException ERC) { System.out.println("Malformed Request"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); //delegationTimer.trigger(); } } if (requesttype == 18) { //TOKEN LOGIN FOR GAME, DOES NOT SEND EMAIL, LAUNCHER WILL NOT USE THIS. System.out.println("Game Login"); int CTOKEN = (int) Lrequest.get("Token"); Document accountServer; int TKN; String Password; String Fname; String Path; String UserName; String Email; String Uid; try { accountServer = accountS.find(eq("Token", CTOKEN)).first(); TKN = (int) accountServer.get("Token"); if (accountServer.get("Status").equals(true)) { if (TKN == CTOKEN) { TKN = (int) accountServer.get("Token"); Password = (String) accountServer.get("Password"); Fname = (String) accountServer.get("FName"); Path = (String) accountServer.get("Path"); Email = (String) accountServer.get("Email"); Uid = (String) accountServer.get("Uid"); UserName = (String) accountServer.get("User"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", ClientID); 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(); updateQuery.append("$set", new BasicDBObject().append("type", 8)); updateQuery2.append("$set", new BasicDBObject().append("Fname", Fname)); updateQuery3.append("$set", new BasicDBObject().append("Path", Path)); 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)); 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, updateQuery5); dCollection.updateOne(searchQuery, updateQuery6); dCollection.updateOne(searchQuery, updateQuery8); dCollection.updateOne(searchQuery, updateQuery7); //delegationTimer.trigger(); delegationTimer.DeleteTargetRequest(ClientID); } else { System.out.println("Login Failure"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } else { System.out.println("Banned Account"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } catch (MongoCommandException ERC) { System.out.println("Malformed Request"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); //delegationTimer.trigger(); } } if (requesttype == 10) { System.out.println("Account Creation Request"); Document DServer = dCollection.find(eq("clientid",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"); int min = 100000000; int max = 999999999; double tokenGEN = Math.random()*(max-min+1)+min; int tokenSTGEN = (int) tokenGEN; //verify open cert try { Document DupeUser = accountS.find(eq("User", User)).first(); String DUPE = (String) DupeUser.get("User"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } catch (Exception exr) { System.out.println("Username Is Open"); try { Document DupeToken = accountS.find(eq("Token", tokenSTGEN)).first(); int DupeToke1n = (int) DupeToken.get("Token"); Boolean TokenOpen = false; while (TokenOpen == false) { tokenGEN = Math.random()*(max-min+1)+min; tokenSTGEN = (int) tokenGEN; try { DupeToken = accountS.find(eq("Token", tokenSTGEN)).first(); DupeToke1n = (int) DupeToken.get("Token"); System.out.println("Token Is Reserved, Try Again."); tokenGEN = Math.random()*(max-min+1)+min; tokenSTGEN = (int) tokenGEN; } catch (Exception exDr) { TokenOpen = true; System.out.println("Token Free (While EXP)"); } } } catch (Exception exrs) { UUID uid = UUID.randomUUID(); System.out.println("Token Free (Main)"); System.out.println("Creating."); Document createForm = new Document(); Document FnetInit = 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("Path", "C:\\ObsidianCoreStudios\\Application\\"); createForm.append("Freinds", " "); createForm.append("Token", tokenSTGEN); createForm.append("Control", 1); createForm.append("Upgrade", 0); //createForm.append("Uid",uid); createForm.append("lastNet", Macid); accountS.insertOne(createForm); FnetInit.append("User", User); FnetInit.append("Status", true); FnetInit.append("Freinds", " "); FnetInit.append("Token", tokenSTGEN); FnetInit.append("Control", 1); FNETDOC.insertOne(FnetInit); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", ClientID); com.jamesquinley.Asecure.emailVerify.Onboarding(Email, User); 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.DeleteTargetRequest(ClientID); } } } if (requesttype == 20) //TODO rewrite to just need username, password will be set by system later { delegationTimer.DeleteTargetRequest(ClientID); System.out.println("Account Creation Request"); Document DServer = dCollection.find(eq("clientid",ClientID)).first(); String User = (String) DServer.get("User"); String Password = (String) DServer.get("Password"); // String Email = (String) DServer.get("Email"); String FName = User; int min = 100000000; int max = 999999999; double tokenGEN = Math.random()*(max-min+1)+min; int tokenSTGEN = (int) tokenGEN; //verify open cert try { Document DupeUser = accountS.find(eq("User", User)).first(); String DUPE = (String) DupeUser.get("User"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } catch (Exception exr) { System.out.println("Username Is Open"); try { Document DupeToken = accountS.find(eq("Token", tokenSTGEN)).first(); int DupeToke1n = (int) DupeToken.get("Token"); Boolean TokenOpen = false; while (TokenOpen == false) { tokenGEN = Math.random()*(max-min+1)+min; tokenSTGEN = (int) tokenGEN; try { DupeToken = accountS.find(eq("Token", tokenSTGEN)).first(); DupeToke1n = (int) DupeToken.get("Token"); System.out.println("Token Is Reserved, Try Again."); tokenGEN = Math.random()*(max-min+1)+min; tokenSTGEN = (int) tokenGEN; } 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(); Document FnetInit = 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("Path", "C:\\ObsidianCoreStudios\\Launcher\\AOTSK\\"); createForm.append("Token", tokenSTGEN); createForm.append("Control", 1); accountS.insertOne(createForm); //create Fnet user FnetInit.append("User", User); FnetInit.append("Status", true); FnetInit.append("Freinds", " "); FnetInit.append("Token", tokenSTGEN); FnetInit.append("Control", 1); FNETDOC.insertOne(FnetInit); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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.DeleteTargetRequest(ClientID); } } } if (requesttype == 21) { //Friends Network Login Goes Here, Fun. } } else { System.out.println("Malformed Request, Non Recoverable (Request Type Not Found)"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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); delegationTimer.DeleteTargetRequest(ClientID); } } } catch (Exception Erp) { System.out.println("Malformed Request, Non Recoverable"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid", 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)); updateQuery1.append("$set", new BasicDBObject().append("pos", "934")); Lrequest.append("status",true); dCollection.updateOne(searchQuery, updateQuery1); dCollection.updateOne(searchQuery, updateQuery); dCollection.updateOne(searchQuery,updateQuery); delegationTimer.DeleteTargetRequest(ClientID); } } //above is finding one request and starting wheels //delegationTimer.trigger(); delegate(); } 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 (int CID) { BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("clientid",CID); 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 delegate () { userAuthetication(); } public static void userAuthetication (){ try { delegationProcesser(); } catch (Exception exr) { delegationTimer.trigger(); } } }