This version adds a kill switch for account creation.

This commit is contained in:
James Quinley 2023-01-20 20:01:40 -08:00
parent d2671102d8
commit f025d0754c
3 changed files with 188 additions and 125 deletions

View File

@ -59,6 +59,44 @@ public class electronicMailHandler {
}
}
public static void Onboardingdisabled(String receiverEmail, String User) {
//get date for email
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yy");
String Date = formatter.format(date);
//get time for sign in time
Date dt = new Date();
SimpleDateFormat dateFormat;
dateFormat = new SimpleDateFormat("kk:mm:ss");
Properties props = new Properties();
props.put("mail.smtp.host", emailSMTPserver);
props.put("mail.smtp.socketFactory.port", emailSMTPPort);
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", emailSMTPPort);
try {
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(props, auth);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(senderEmailId));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(receiverEmail));
message.setSubject("Obsidian Core Request Denial");
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." +
"\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) {
//get date for email
Date date = new Date();

View File

@ -59,4 +59,13 @@ public class secureCalls {
};
runnable.run();
}
public static void accountCreationDisabled (String email, String user)
{
final Runnable runnable = new Runnable() {
public void run() {
electronicMailHandler.Onboardingdisabled(email,user);
}
};
runnable.run();
}
}

View File

@ -1116,97 +1116,85 @@ public class delegationServices {
String Password = (String) DServer.get("Password");
String Email = (String) DServer.get("Email");
String FName = (String) DServer.get("FName");
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();
//Above makes token, it will be remade if it already exists
String source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sb = new StringBuilder();
int length = 40;
for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length());
char randomChar = source.charAt(index);
sb.append(randomChar);
}
String UUID = sb.toString();
//Above makes UUID, will be remade if it already exists.
try {
Document DupeEmail = accountS.find(eq("Email", Email)).first();
String DUPEEMAIL = (String) DupeEmail.get("Email");
if (DUPEEMAIL.equals(null)) {
Document DupeUser = accountS.find(eq("User", User)).first();
String DUPE = (String) DupeUser.get("User");
if ((Boolean) Filter.get("creationEnabled")) {
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);
}
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
String Token = "OCST" + sbt.toString();
//Above makes token, it will be remade if it already exists
String source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
StringBuilder sb = new StringBuilder();
int length = 40;
for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length());
char randomChar = source.charAt(index);
sb.append(randomChar);
}
String UUID = sb.toString();
//Above makes UUID, will be remade if it already exists.
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 6));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} catch (Exception exr) {
System.out.println("Username & Email Is Open");
try {
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) {
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", Token)).first();
DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Token Is Reserved, Try Again.");
Document DupeEmail = accountS.find(eq("Email", Email)).first();
String DUPEEMAIL = (String) DupeEmail.get("Email");
if (DUPEEMAIL.equals(null)) {
Document DupeUser = accountS.find(eq("User", User)).first();
String DUPE = (String) DupeUser.get("User");
}
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 6));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
} catch (Exception exr) {
System.out.println("Username & Email Is Open");
try {
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) {
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)");
}
}
} catch (Exception token) {
System.out.println("Working on UUID");
try {
Document DupeUUID = accountS.find(eq("UUID", UUID)).first();
String DupeUUIDS = (String) DupeUUID.get("UUID");
System.out.println("Got Gen UUID");
Boolean UUIDOPEN = false;
while (UUIDOPEN == false) {
length = 40;
sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length());
char randomChar = source.charAt(index);
sb.append(randomChar);
}
String UUIDGEN = sb.toString();
Token = sbt.toString();
try {
System.out.println("Retry UUID");
DupeUUID = accountS.find(eq("UUID", UUID)).first();
DupeUUIDS = (String) DupeUUID.get("UUID");
System.out.println("UUID Is Reserved, Try Again.");
DupeToken = accountS.find(eq("Token", Token)).first();
DupeToke1n = (String) DupeToken.get("Token");
System.out.println("Token Is Reserved, Try Again.");
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)");
}
}
} catch (Exception token) {
System.out.println("Working on UUID");
try {
Document DupeUUID = accountS.find(eq("UUID", UUID)).first();
String DupeUUIDS = (String) DupeUUID.get("UUID");
System.out.println("Got Gen UUID");
Boolean UUIDOPEN = false;
while (UUIDOPEN == false) {
length = 40;
sb = new StringBuilder();
for (int i = 0; i < length; i++) {
@ -1214,53 +1202,81 @@ public class delegationServices {
char randomChar = source.charAt(index);
sb.append(randomChar);
}
UUIDGEN = sb.toString();
UUID = UUIDGEN;
} catch (Exception exDr) {
UUIDOPEN = true;
System.out.println("UUID Free (While EXP)" + exDr);
String UUIDGEN = sb.toString();
try {
System.out.println("Retry UUID");
DupeUUID = accountS.find(eq("UUID", UUID)).first();
DupeUUIDS = (String) DupeUUID.get("UUID");
System.out.println("UUID Is Reserved, Try Again.");
length = 40;
sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length());
char randomChar = source.charAt(index);
sb.append(randomChar);
}
UUIDGEN = sb.toString();
UUID = UUIDGEN;
} catch (Exception exDr) {
UUIDOPEN = true;
System.out.println("UUID Free (While EXP)" + exDr);
}
}
} catch (NullPointerException uuid) {
System.out.println("UUID Free");
}
} catch (NullPointerException uuid) {
System.out.println("UUID Free");
System.out.println("Token Free");
System.out.println("Token & UUID Free (Main)");
System.out.println("Creating.");
Document createForm = new Document();
createForm.append("User", User);
createForm.append("Password", Password);
createForm.append("Status", true);
createForm.append("Flagged", false);
createForm.append("Email", Email);
createForm.append("FName", FName);
createForm.append("Entitlements", "NA");
createForm.append("Path", "C:\\ObsidianCoreStudios\\Application\\");
createForm.append("Freinds", " ");
createForm.append("Token", Token);
createForm.append("UUID", UUID);
createForm.append("Control", 1);
createForm.append("Upgrade", 0);
createForm.append("Version", "2");
createForm.append("keyStatus", false);
//createForm.append("Uid",uid);
createForm.append("lastNet", Macid);
accountS.insertOne(createForm);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
secureCalls.accountCreationComplete(Email, User, UUID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 4));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Finished Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
System.out.println("Token Free");
System.out.println("Token & UUID Free (Main)");
System.out.println("Creating.");
Document createForm = new Document();
createForm.append("User", User);
createForm.append("Password", Password);
createForm.append("Status", true);
createForm.append("Flagged", false);
createForm.append("Email", Email);
createForm.append("FName", FName);
createForm.append("Entitlements", "NA");
createForm.append("Path", "C:\\ObsidianCoreStudios\\Application\\");
createForm.append("Freinds", " ");
createForm.append("Token", Token);
createForm.append("UUID", UUID);
createForm.append("Control", 1);
createForm.append("Upgrade", 0);
createForm.append("Version", "2");
createForm.append("keyStatus", false);
//createForm.append("Uid",uid);
createForm.append("lastNet", Macid);
accountS.insertOne(createForm);
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
secureCalls.accountCreationComplete(Email, User, UUID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 4));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Finished Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id", ClientID);
secureCalls.accountCreationDisabled(Email, User);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 52));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
System.out.println("Update Request With Finished Status");
delegationTimer.DeleteTargetRequestByID(Lrequest.get("_id"));
}
}
if (requesttype == 20)