diff --git a/src/main/java/com/jamesquinley/Asecure/electronicMailHandler.java b/src/main/java/com/jamesquinley/Asecure/electronicMailHandler.java index b0e0d23..fd096b8 100644 --- a/src/main/java/com/jamesquinley/Asecure/electronicMailHandler.java +++ b/src/main/java/com/jamesquinley/Asecure/electronicMailHandler.java @@ -84,17 +84,14 @@ public class electronicMailHandler { message.setFrom(new InternetAddress(senderEmailId)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(receiverEmail)); - message.setSubject("Obsidian Core Request Denial"); + message.setSubject("Obsidian Core Account Message"); message.setText("Hey there, account creation has been disabled.\n" + - "We're closing up shop, and we've disabled account creation on the service. Existing accounts will continue to work until service shutdown." + + "Due to a technical issue account creation has been disabled, see https://status.obsidiancorestudios.com for more info." + "\nHave a good day, " + User); Transport.send(message); - System.out.println("Sent Disabled Account Join Email"); } catch (Exception e) { e.printStackTrace(); - System.err.println("Email ONBOARD Not sent due to an error"); - } } public static void offBoarding(String receiverEmail, String User, String Name) { diff --git a/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java b/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java index 4816946..9295dc5 100644 --- a/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java +++ b/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java @@ -170,11 +170,10 @@ public class delegationServices { System.out.println("Got Type, Getting Doc ID"); RequestR = requesttype; - + System.out.println(RG); System.out.println("Delegation Has Started"); - if (!RG.equals("web") || !RG.equals("chat")) - { - 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) { + 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 + ) { if (requesttype == 47) { System.out.println("Self Updater download Request"); BasicDBObject searchQuery = new BasicDBObject(); @@ -1261,7 +1260,8 @@ public class delegationServices { } else { BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("_id", ClientID); - secureCalls.accountCreationDisabled(Email, User); + 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", @@ -1803,6 +1803,671 @@ public class delegationServices { 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 Path; + 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"); + Path = (String) accountServer.get("Path"); + 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 updateQuery3 = 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)); + updateQuery3.append("$set", + new BasicDBObject().append("Path", Path)); + 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, 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")); + } 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", 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", 83)); + 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 Path; 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"); + Path = (String) accountServer.get("Path"); + 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)); + 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)"); + String CTOKEN = (String) Lrequest.get("token"); + // Document TResolve = dCollection.find(eq("type", 3)).first(); + Document accountServer; + String TKN; + String Password; + String Fname; + String Path; + 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"); + Path = (String) accountServer.get("Path"); + 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 updateQuery3 = 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)); + updateQuery3.append("$set", + new BasicDBObject().append("Path", Path)); + 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, 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")); + } 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 Path; + 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")); + + } 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")); + } } else { System.out.println("Malformed Request, Non Recoverable (Request Type Not Found)"); BasicDBObject searchQuery = new BasicDBObject(); @@ -1822,696 +2487,6 @@ public class delegationServices { delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); } - } else - { - System.out.println("Running in limited mode (Web Request)"); - if (requesttype == 73 || requesttype == 74 || requesttype == 75 || requesttype ==78 || requesttype == 79 || requesttype == 81) { - 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 Path; 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"); - Path = (String) accountServer.get("Path"); - 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)); - 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)"); - String CTOKEN = (String) Lrequest.get("token"); - // Document TResolve = dCollection.find(eq("type", 3)).first(); - Document accountServer; - String TKN; - String Password; - String Fname; - String Path; - 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"); - Path = (String) accountServer.get("Path"); - 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 updateQuery3 = 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)); - updateQuery3.append("$set", - new BasicDBObject().append("Path", Path)); - 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, 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")); - } 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 Path; - 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")); - - } 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 == 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 Path; - 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"); - Path = (String) accountServer.get("Path"); - 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 updateQuery3 = 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)); - updateQuery3.append("$set", - new BasicDBObject().append("Path", Path)); - 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, 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")); - } 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", 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", 83)); - 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(); - } - } - } else { - System.out.println("Type does not exist (ERR4)"); - 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")); - } - - } } } } catch (Exception Erp) {