Adds login and token login in web branch.

This commit is contained in:
James Quinley
2022-11-24 08:35:57 -08:00
parent 486b999005
commit bdffff72bf
4 changed files with 1869 additions and 1446 deletions

View File

@ -15,8 +15,14 @@ public class secureCalls {
public static void banAction (String UUID)
{
final Runnable runnable = new Runnable() {
public void run() {
delegationServices.banUserID(UUID);
}
};
runnable.run();
}
public static void oneTimeKeyEmail (String email, String key, String user)
{
final Runnable runnable = new Runnable() {
@ -35,4 +41,13 @@ public class secureCalls {
};
runnable.run();
}
public static void accountCreationComplete (String email, String user, String UUID)
{
final Runnable runnable = new Runnable() {
public void run() {
electronicMailHandler.Onboarding(email,user,UUID);
}
};
runnable.run();
}
}

View File

@ -12,6 +12,7 @@ import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.apache.logging.log4j.core.util.JsonUtils;
import org.bson.Document;
import org.bson.types.ObjectId;
import java.io.File;
import java.io.FileWriter;
@ -34,7 +35,7 @@ public class delegationServices {
static MongoCollection<Document> dCollection;
static MongoDatabase RGFilterDB;
static MongoCollection<Document> RGFilter;
static Document Lrequest = null;
public static void connectionInit(Boolean beta) {
//TODO Send Server Version As Standard.
if (beta) {
@ -81,7 +82,6 @@ public class delegationServices {
static MongoClient accountGetClient = MongoClients.create(AccountSettings);
static MongoDatabase accountDatabase = accountGetClient.getDatabase("account");
static MongoCollection<Document> accountS = accountDatabase.getCollection("UserPass");
static MongoCollection<Document> FNETDOC = accountDatabase.getCollection("FNet");
static int RequestR;
//still need to config
public static String lastNet = null;
@ -97,28 +97,23 @@ public class delegationServices {
}
public static void delegationProcesser() {
Boolean cid = false;
Boolean mac = false;
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 {
System.out.println(Lrequest);
try {
try {
ClientID = (int) Lrequest.get("clientid");
cid = true;
} catch (Exception exrp) {
delegationTimer.DeleteTargetRequest(ClientID);
System.out.println("This request has opted out of CID.");
}
try {
Macid = (String) Lrequest.get("net");
mac = true;
} catch (Exception exrp) {
System.out.println("Failed To Get MacAdr");
delegationTimer.DeleteTargetRequest(ClientID);
System.out.println("This request has opted out of CID.");
}
String RG = (String) Lrequest.get("rg");
@ -164,7 +159,7 @@ public class delegationServices {
} else {
if (blockedRG.contains(RG)) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("rid", Lrequest.get("rid"));
searchQuery.append("_id", Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
@ -183,6 +178,8 @@ public class delegationServices {
System.out.println("Delegation Has Started");
if (cid == true && mac == true)
{
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 == 47) {
System.out.println("Self Updater download Request");
@ -372,6 +369,7 @@ public class delegationServices {
String UserName;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
if (!(accountServer == null)) {
Token = (String) accountServer.get("Token");
if (accountServer.get("Status").equals(true)) {
if (Token.equals(CTOKEN)) {
@ -427,6 +425,22 @@ public class delegationServices {
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequest(ClientID);
}
} else {
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);
}
} catch (MongoCommandException ERC) {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
@ -785,6 +799,7 @@ public class delegationServices {
String keychainUUID;
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
if (!(accountServer == null)) {
TKN = (String) accountServer.get("Token");
if (accountServer.get("Status").equals(true)) {
if (TKN.equals(CTOKEN)) {
@ -797,7 +812,6 @@ public class delegationServices {
lastNet = (String) accountServer.get("lastNet");
keychainUUID = (String) accountServer.get("UUID");
localNet.macRead(Macid, lastNet, Email, UserName, TKN);
// com.jamesquinley.Asecure.emailVerify.SendEmailThroughGmail(Email, UserName);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
@ -874,6 +888,22 @@ public class delegationServices {
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);
}
} catch (MongoCommandException ERC) {
System.out.println("Malformed Request");
BasicDBObject searchQuery = new BasicDBObject();
@ -1176,7 +1206,7 @@ public class delegationServices {
accountS.insertOne(createForm);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
electronicMailHandler.Onboarding(Email, User, UUID);
secureCalls.accountCreationComplete(Email, User, UUID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
@ -1201,12 +1231,16 @@ public class delegationServices {
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
String sourcet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sbt = new StringBuilder();
Random random = new Random();
int tokenlength = 60;
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
String Token = "OCST" + sbt.toString();
try {
Document DupeUser = accountS.find(eq("User", User)).first();
String DUPE = (String) DupeUser.get("User");
@ -1226,19 +1260,26 @@ public class delegationServices {
} catch (Exception exr) {
System.out.println("Username Is Open");
try {
Document DupeToken = accountS.find(eq("Token", tokenSTGEN)).first();
int DupeToke1n = (int) DupeToken.get("Token");
Document DupeToken = accountS.find(eq("Token", Token)).first();
String DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Got Token from request");
Boolean TokenOpen = false;
while (TokenOpen == false) {
tokenGEN = Math.random() * (max - min + 1) + min;
tokenSTGEN = (int) tokenGEN;
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
Token = sbt.toString();
try {
DupeToken = accountS.find(eq("Token", tokenSTGEN)).first();
DupeToke1n = (int) DupeToken.get("Token");
DupeToken = accountS.find(eq("Token", Token)).first();
DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Token Is Reserved, Try Again.");
tokenGEN = Math.random() * (max - min + 1) + min;
tokenSTGEN = (int) tokenGEN;
for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index);
sbt.append(randomChar);
}
} catch (Exception exDr) {
TokenOpen = true;
System.out.println("Token Free (While EXP)");
@ -1256,7 +1297,7 @@ public class delegationServices {
createForm.append("FName", FName);
createForm.append("Entitlements", "NA");
createForm.append("Path", "C:\\ObsidianCoreStudios\\Launcher\\AOTSK\\");
createForm.append("Token", tokenSTGEN);
createForm.append("Token", Token);
createForm.append("Control", 1);
accountS.insertOne(createForm);
BasicDBObject searchQuery = new BasicDBObject();
@ -1637,6 +1678,21 @@ public class delegationServices {
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequest(ClientID);
}
} else
{
System.out.println("This key is incorrect, account is banned.");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 70));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequest(ClientID);
}
} catch (Exception ERC) {
System.out.println("This key is incorrect." + ERC);
@ -1646,7 +1702,7 @@ public class delegationServices {
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 56));
new BasicDBObject().append("type", 70));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
@ -1722,12 +1778,336 @@ public class delegationServices {
delegationTimer.DeleteTargetRequest(ClientID);
}
} else
{
System.out.println("Running in limited mode (Web Request)");
if (requesttype == 73 || requesttype == 74) {
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) Lrequest.get("sessionID");
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);
}
} catch (Exception Erp) {
System.out.println("Malformed Request, Non Recoverable ErrorInfo: " + Erp);
String OTK = sb.toString();
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
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.DeleteTargetRequest(ClientID);
}
} 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 updateQuery5 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
BasicDBObject updateQuery8 = 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));
updateQuery5.append("$set",
new BasicDBObject().append("Password", Password));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
updateQuery8.append("$set",
new BasicDBObject().append("keychainUUID", keychainUUID));
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, updateQuery5);
dCollection.updateOne(searchQuery, updateQuery6);
dCollection.updateOne(searchQuery, updateQuery7);
dCollection.updateOne(searchQuery, updateQuery8);
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(Lrequest.get("_id"));
}
}
} else {
System.out.println("Banned Account");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id",Lrequest.get("_id").toString());
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").toString());
}
} 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(Lrequest.get("_id"));
}
}
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 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));
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, updateQuery5);
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();
}
}
} else {
System.out.println("Malformed Request, Non Recoverable ErrorInfo: ");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id",Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
@ -1736,15 +2116,36 @@ public class delegationServices {
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
updateQuery1.append("$set",
new BasicDBObject().append("pos", "934"));
new BasicDBObject().append("pos", "uk"));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery);
delegationTimer.DeleteTargetRequest(ClientID);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
}
delegate();
}
} catch (Exception Erp) {
System.out.println("Malformed Request, Non Recoverable ErrorInfo: " + Erp);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id",Lrequest.get("_id"));
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 7));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
updateQuery1.append("$set",
new BasicDBObject().append("pos", "uk"));
Lrequest.append("status", true);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
public static void Purge() {
@ -1764,6 +2165,14 @@ public class delegationServices {
System.out.println("Flushed a targeted request (CID) from the server");
}
public static void TargetDeleteByID(Object ID) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ID);
dCollection.deleteMany(searchQuery);
System.out.println("Flushed a targeted request (CID) from the server");
}
public static void TargetDeleteRID(int CID) {
@ -1774,18 +2183,19 @@ public class delegationServices {
}
public static void delegate() {
userAuthetication();
}
public static void userAuthetication() {
try {
while (true) {
final Runnable runnable = new Runnable() {
public void run() {
Lrequest = dCollection.find(eq("status", false)).first();
if (!(Lrequest == null)) {
delegationProcesser();
} catch (Exception exr) {
delegationTimer.trigger();
//Shit is so janky, I tell it not to crash when it wants to crash
}
}
};
runnable.run();
}
}
}

View File

@ -1,28 +1,10 @@
package com.jamesquinley.DelegationServices;
import org.bson.Document;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class delegationTimer {
public static void trigger ()
{
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final Runnable runnable = new Runnable() {
int countdownStarter = 2;
public void run() {
countdownStarter--;
if (countdownStarter <= 0) {
countdownStarter = 2;
delegationServices.delegate();
scheduler.shutdown();
}
}
};
scheduler.scheduleAtFixedRate(runnable, 0, 1, TimeUnit.SECONDS);
}
public static void DeleteTargetRequest (int CID)
{
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
@ -39,6 +21,22 @@ public class delegationTimer {
};
scheduler.scheduleAtFixedRate(runnable, 0, 1, TimeUnit.SECONDS);
}
public static void DeleteTargetRequestByID (Object ID)
{
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final Runnable runnable = new Runnable() {
int countdownStarter = 5;
public void run() {
countdownStarter--;
if (countdownStarter <= 0) {
countdownStarter = 5;
delegationServices.TargetDeleteByID(ID);
scheduler.shutdown();
}
}
};
scheduler.scheduleAtFixedRate(runnable, 0, 1, TimeUnit.SECONDS);
}
public static void DeleteTargetRequestQuick (int CID)
{
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

View File

@ -13,7 +13,7 @@ public class Main
com.jamesquinley.DelegationServices.delegationServices.connectionInit(status.betaServer);
com.jamesquinley.DelegationServices.delegationServices.Purge();
System.out.println( "We're starting the login delegation server, please wait one moment while we check a few things.");
com.jamesquinley.DelegationServices.delegationTimer.trigger();
com.jamesquinley.DelegationServices.delegationServices.userAuthetication();
System.out.println("We've started everything, requests are now being served");
}
}