Server update, this incorporates DOB checks.

This commit is contained in:
James Quinley 2023-05-14 23:03:32 -07:00
parent f4f664ef86
commit 32d44f6532

View File

@ -15,7 +15,9 @@ import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import java.util.Random; import java.util.Random;
import static com.jamesquinley.Asecure.electronicMailHandler.*; import static com.jamesquinley.Asecure.electronicMailHandler.*;
@ -1155,169 +1157,187 @@ public class delegationServices {
String Email = (String) DServer.get("Email"); String Email = (String) DServer.get("Email");
String FName = (String) DServer.get("FName"); String FName = (String) DServer.get("FName");
int DOB = (int) DServer.get("UDOB"); int DOB = (int) DServer.get("UDOB");
//TODO Please made DOB calcs work. String yearString = new SimpleDateFormat("yyyy").format(new Date());
if ((Boolean) Filter.get("creationEnabled")) { int year = Integer.parseInt(yearString);
String sourcet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; if (year-DOB >= 13) {
StringBuilder sbt = new StringBuilder(); if ((Boolean) Filter.get("creationEnabled")) {
Random random = new Random(); String sourcet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
int tokenlength = 60; StringBuilder sbt = new StringBuilder();
for (int i = 0; i < tokenlength; i++) { Random random = new Random();
int index = random.nextInt(sourcet.length()); int tokenlength = 60;
char randomChar = sourcet.charAt(index); for (int i = 0; i < tokenlength; i++) {
sbt.append(randomChar); int index = random.nextInt(sourcet.length());
} char randomChar = sourcet.charAt(index);
String Token = "OCST" + sbt.toString(); sbt.append(randomChar);
//Above makes token, it will be remade if it already exists }
String source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; String Token = "OCST" + sbt.toString();
StringBuilder sb = new StringBuilder(); //Above makes token, it will be remade if it already exists
int length = 40; String source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
for (int i = 0; i < length; i++) { StringBuilder sb = new StringBuilder();
int index = random.nextInt(source.length()); int length = 40;
char randomChar = source.charAt(index); for (int i = 0; i < length; i++) {
sb.append(randomChar); int index = random.nextInt(source.length());
} char randomChar = source.charAt(index);
String UUID = sb.toString(); sb.append(randomChar);
//Above makes UUID, will be remade if it already exists. }
String UUID = sb.toString();
//Above makes UUID, will be remade if it already exists.
try { try {
Document DupeEmail = accountS.find(eq("Email", Email)).first(); Document DupeEmail = accountS.find(eq("Email", Email)).first();
String DUPEEMAIL = (String) DupeEmail.get("Email"); String DUPEEMAIL = (String) DupeEmail.get("Email");
if (DUPEEMAIL.equals(null)) { if (DUPEEMAIL.equals(null)) {
Document DupeUser = accountS.find(eq("User", User)).first(); Document DupeUser = accountS.find(eq("User", User)).first();
String DUPE = (String) DupeUser.get("User"); String DUPE = (String) DupeUser.get("User");
} }
BasicDBObject searchQuery = new BasicDBObject(); BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID); searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject(); BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject(); BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set", updateQuery.append("$set",
new BasicDBObject().append("type", 6)); new BasicDBObject().append("type", 6));
updateQuery1.append("$set", updateQuery1.append("$set",
new BasicDBObject().append("status", true)); new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery); dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1); dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} catch (Exception exr) { } catch (Exception exr) {
System.out.println("Username & Email Is Open"); System.out.println("Username & Email Is Open");
try { try {
Document DupeToken = accountS.find(eq("Token", Token)).first(); Document DupeToken = accountS.find(eq("Token", Token)).first();
String DupeToke1n = (String) DupeToken.get("Token"); String DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Got Token from request"); System.out.println("Got Token from request");
Boolean TokenOpen = false; Boolean TokenOpen = false;
while (TokenOpen == false) { while (TokenOpen == false) {
for (int i = 0; i < tokenlength; i++) { for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length()); int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index); char randomChar = sourcet.charAt(index);
sbt.append(randomChar); sbt.append(randomChar);
} }
Token = sbt.toString(); Token = sbt.toString();
try { try {
DupeToken = accountS.find(eq("Token", Token)).first(); DupeToken = accountS.find(eq("Token", Token)).first();
DupeToke1n = (String) DupeToken.get("Token"); DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Token Is Reserved, Try Again."); System.out.println("Token Is Reserved, Try Again.");
for (int i = 0; i < tokenlength; i++) { for (int i = 0; i < tokenlength; i++) {
int index = random.nextInt(sourcet.length()); int index = random.nextInt(sourcet.length());
char randomChar = sourcet.charAt(index); char randomChar = sourcet.charAt(index);
sbt.append(randomChar); sbt.append(randomChar);
} }
} catch (Exception exDr) { } catch (Exception exDr) {
TokenOpen = true; TokenOpen = true;
System.out.println("Token Free (While EXP)"); System.out.println("Token Free (While EXP)");
} }
} }
} catch (Exception token) { } catch (Exception token) {
System.out.println("Working on UUID"); System.out.println("Working on UUID");
try { try {
Document DupeUUID = accountS.find(eq("UUID", UUID)).first(); Document DupeUUID = accountS.find(eq("UUID", UUID)).first();
String DupeUUIDS = (String) DupeUUID.get("UUID"); String DupeUUIDS = (String) DupeUUID.get("UUID");
System.out.println("Got Gen UUID"); System.out.println("Got Gen UUID");
Boolean UUIDOPEN = false; Boolean UUIDOPEN = false;
while (UUIDOPEN == false) { while (UUIDOPEN == false) {
length = 40; length = 40;
sb = new StringBuilder(); sb = new StringBuilder();
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length()); int index = random.nextInt(source.length());
char randomChar = source.charAt(index); char randomChar = source.charAt(index);
sb.append(randomChar); sb.append(randomChar);
} }
String UUIDGEN = sb.toString(); String UUIDGEN = sb.toString();
try { try {
System.out.println("Retry UUID"); System.out.println("Retry UUID");
DupeUUID = accountS.find(eq("UUID", UUID)).first(); DupeUUID = accountS.find(eq("UUID", UUID)).first();
DupeUUIDS = (String) DupeUUID.get("UUID"); DupeUUIDS = (String) DupeUUID.get("UUID");
System.out.println("UUID Is Reserved, Try Again."); System.out.println("UUID Is Reserved, Try Again.");
length = 40; length = 40;
sb = new StringBuilder(); sb = new StringBuilder();
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length()); int index = random.nextInt(source.length());
char randomChar = source.charAt(index); char randomChar = source.charAt(index);
sb.append(randomChar); sb.append(randomChar);
} }
UUIDGEN = sb.toString(); UUIDGEN = sb.toString();
UUID = UUIDGEN; UUID = UUIDGEN;
} catch (Exception exDr) { } catch (Exception exDr) {
UUIDOPEN = true; UUIDOPEN = true;
System.out.println("UUID Free (While EXP)" + exDr); System.out.println("UUID Free (While EXP)" + exDr);
} }
} }
} catch (NullPointerException uuid) { } catch (NullPointerException uuid) {
System.out.println("UUID Free"); System.out.println("UUID Free");
} }
System.out.println("Token Free"); System.out.println("Token Free");
System.out.println("Token & UUID Free (Main)"); System.out.println("Token & UUID Free (Main)");
System.out.println("Creating."); System.out.println("Creating.");
Document createForm = new Document(); Document createForm = new Document();
createForm.append("User", User); createForm.append("User", User);
createForm.append("Password", Password); createForm.append("Password", Password);
createForm.append("Status", true); createForm.append("Status", true);
createForm.append("Flagged", false); createForm.append("Flagged", false);
createForm.append("Email", Email); createForm.append("Email", Email);
createForm.append("FName", FName); createForm.append("FName", FName);
createForm.append("Entitlements", "NA"); createForm.append("Entitlements", "NA");
createForm.append("Freinds", " "); createForm.append("Freinds", " ");
createForm.append("Token", Token); createForm.append("Token", Token);
createForm.append("UUID", UUID); createForm.append("UUID", UUID);
createForm.append("Control", 1); createForm.append("Control", 1);
createForm.append("Upgrade", 0); createForm.append("Upgrade", 0);
createForm.append("Version", "2"); createForm.append("Version", "2");
createForm.append("keyStatus", false); createForm.append("keyStatus", false);
//createForm.append("Uid",uid); //createForm.append("Uid",uid);
createForm.append("lastNet", IPA); createForm.append("lastNet", IPA);
accountS.insertOne(createForm); accountS.insertOne(createForm);
BasicDBObject searchQuery = new BasicDBObject(); BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID); searchQuery.append("_id", ClientID);
secureCalls.accountCreationComplete(Email, User, UUID); secureCalls.accountCreationComplete(Email, User, UUID);
BasicDBObject updateQuery = new BasicDBObject(); BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject(); BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set", updateQuery.append("$set",
new BasicDBObject().append("type", 4)); new BasicDBObject().append("type", 4));
updateQuery1.append("$set", updateQuery1.append("$set",
new BasicDBObject().append("status", true)); new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery); dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1); dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Finished Status"); System.out.println("Update Request With Finished Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} }
} }
} else { } else {
BasicDBObject searchQuery = new BasicDBObject(); BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID); searchQuery.append("_id", ClientID);
try { secureCalls.accountCreationDisabled(Email, User);} catch (Exception ex) {System.out.println("Unable to send disabled msg to user"); try { secureCalls.accountCreationDisabled(Email, User);} catch (Exception ex) {System.out.println("Unable to send disabled msg to user");
} }
BasicDBObject updateQuery = new BasicDBObject(); BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject(); BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set", updateQuery.append("$set",
new BasicDBObject().append("type", 52)); new BasicDBObject().append("type", 52));
updateQuery1.append("$set", updateQuery1.append("$set",
new BasicDBObject().append("status", true)); new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery); dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1); dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Finished Status"); System.out.println("Update Request With Finished Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id")); delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} }
} else {
//Please set to a custom flag
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 97));
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 == 20) if (requesttype == 20)