Allows account migration

This commit is contained in:
James Quinley
2022-06-27 20:33:34 -07:00
parent db59087288
commit 2914419260
4 changed files with 187 additions and 5 deletions

View File

@ -15,6 +15,7 @@ import org.bson.Document;
import java.util.Random;
import java.util.UUID;
import static com.jamesquinley.Asecure.secureCalls.accountMigrationComplete;
import static com.mongodb.client.model.Filters.eq;
import static java.util.concurrent.TimeUnit.SECONDS;
@ -161,7 +162,7 @@ public class delegationServices {
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 || requesttype == 47 || requesttype == 48) {
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 || requesttype == 47 || requesttype == 48 || requesttype == 54 || requesttype == 57) {
if (requesttype == 47) {
System.out.println("Self Updater download Request");
BasicDBObject searchQuery = new BasicDBObject();
@ -522,7 +523,7 @@ public class delegationServices {
}
else
{
System.out.println("RS1");
System.out.println("RS14");
if (Password.equals(password)) {
System.out.println("R3c");
Token = (int) accountServer.get("Token");
@ -620,31 +621,160 @@ public class delegationServices {
if (requesttype == 54) {
System.out.println("Verifying OTK");
String userKey = (String) Lrequest.get("otk");
String userName = (String) Lrequest.get("recoverUser");
String serverUserName;
userKey = userKey.toUpperCase();
System.out.println(userKey);
Document accountServer;
try {
accountServer = accountS.find(eq("tempKey", userKey)).first();
serverUserName = (String) accountServer.get("User");
if (accountServer.get("Status").equals(true))
{
if (userName.equalsIgnoreCase(serverUserName))
{
System.out.println("This key is correct.");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type",55));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequest(ClientID);
}
else
{
System.out.println("This key is incorrect");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type",56));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequest(ClientID);
}
}
} catch (Exception ERC) {
System.out.println("This key is incorrect." + 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));
new BasicDBObject().append("type",56));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
delegationTimer.DeleteTargetRequest(ClientID);
}
}
if (requesttype == 57)
{
System.out.println("Verifying email with account tied to OTK");
try {
String userKey = (String) Lrequest.get("otk");
String requestedPassword = (String) Lrequest.get("paw");
String email = (String) Lrequest.get("email");
String serverEmail;
userKey = userKey.toUpperCase();
Document accountServer;
accountServer = accountS.find(eq("tempKey", userKey)).first();
serverEmail = (String) accountServer.get("Email");
String userName = (String) accountServer.get("User");
String serverKey = (String) accountServer.get("tempKey");
System.out.println("Requested Password Hash: " + requestedPassword);
System.out.println("Email Stored On Server: " + serverEmail);
System.out.println("Email from client: " + email);
System.out.println("otk stored on server: " + serverKey);
System.out.println("otk from client: " + userKey);
if (email.equalsIgnoreCase(serverEmail) && userKey.equals(serverKey)) {
System.out.println("All Matching, lets go!");
BasicDBObject searchQuery = new BasicDBObject();
BasicDBObject searchQuery1 = new BasicDBObject();
searchQuery.append("Email", serverEmail);
searchQuery1.append("clientid", ClientID);
System.out.println("Send indexes are ready.");
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
System.out.println("Objects are ready.");
updateQuery.append("$set",
new BasicDBObject().append("Password",requestedPassword));
updateQuery1.append("$unset",
new BasicDBObject().append("tempKey", ""));
updateQuery2.append("$set",
new BasicDBObject().append("Version","2"));
updateQuery3.append("$set",
new BasicDBObject().append("keyStatus",false));
System.out.println("Objects set");
accountS.updateOne(searchQuery, updateQuery);
accountS.updateOne(searchQuery, updateQuery1);
accountS.updateOne(searchQuery, updateQuery2);
accountS.updateOne(searchQuery, updateQuery3);
System.out.println("Objects send");
BasicDBObject closeRequestType = new BasicDBObject();
BasicDBObject finalizeRequest = new BasicDBObject();
System.out.println("Objects close init");
closeRequestType.append("$set",
new BasicDBObject().append("type",58));
finalizeRequest.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery1, closeRequestType);
dCollection.updateOne(searchQuery1, finalizeRequest);
System.out.println("Objects close send");
delegationTimer.DeleteTargetRequest(ClientID);
System.out.println("request finished correctly");
accountMigrationComplete(serverEmail, userName);
}
else
{
System.out.println("request denied");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type",59));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequest(ClientID);
}
} catch (Exception ex) {
System.out.println("Unable to reset password, making that known." + ex);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type",59));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequest(ClientID);
}
}
if (requesttype == 3) {
System.out.println("Login Request (TKN)");
int CTOKEN = (int) Lrequest.get("Token");

View File

@ -2,4 +2,5 @@ package com.jamesquinley.DelegationServices;
public class status {
public static boolean betaServer = false;
//Beta server has been discontinued, the database that the server depended on has been shut down.
}