Keeps server alive even after fatal crashes, known issue working on a fix need server to be online in the meantime.

This commit is contained in:
James Quinley
2022-11-27 21:38:58 -08:00
parent 1a969fdec4
commit 1db6bd21dc
4 changed files with 193 additions and 9 deletions

View File

@ -139,6 +139,46 @@ public class electronicMailHandler {
System.err.println("Was Not Sent Because Of An Error.");
}
}
public static void newLink (String receiverEmail, String Platform, 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 Account Linked to " + Platform + " | " + Date);
message.setText("Hello, " + User
+ "\nYou've linked your " + Platform + " account with your Obsidian Core Studios account. \n" +
"You can now use our services which we ofter there with the same account as the launcher! \n" +
"This is an automated email, please don't reply." +
"\n See the account management dashboard at https://www.obsidiancorestudios.com/account/" +
"\nYour use of our services regardless of platform are subject to our usage agreements, which can be found at https://www.obsidiancorestudios.com/legal/eula");
Transport.send(message);
System.out.println("Alert Sent");
} catch (Exception e) {
e.printStackTrace();
System.err.println("Was Not Sent Because Of An Error.");
}
}
public static void otkEmail (String receiverEmail, String Key, String User) {
//get date for email

View File

@ -32,6 +32,15 @@ public class secureCalls {
};
runnable.run();
}
public static void accountLinked (String email, String Platform, String user)
{
final Runnable runnable = new Runnable() {
public void run() {
electronicMailHandler.newLink(email,Platform,user);
}
};
runnable.run();
}
public static void accountMigrationComplete (String email, String user)
{
final Runnable runnable = new Runnable() {

View File

@ -101,7 +101,6 @@ public class delegationServices {
Boolean mac = false;
Document Filter;
int ClientID = 0;
System.out.println(Lrequest);
try {
try {
ClientID = (int) Lrequest.get("clientid");
@ -1781,7 +1780,7 @@ public class delegationServices {
} else
{
System.out.println("Running in limited mode (Web Request)");
if (requesttype == 73 || requesttype == 74) {
if (requesttype == 73 || requesttype == 74 || requesttype == 75) {
if (requesttype == 73) {
System.out.println("Login Request (USR&PASS)");
String username = (String) Lrequest.get("user");
@ -2092,6 +2091,138 @@ public class delegationServices {
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 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();
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));
System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
accountS.updateOne(searchQueryASC, updateQueryAD);
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",
@ -2105,7 +2236,7 @@ public class delegationServices {
}
}
} else {
System.out.println("Malformed Request, Non Recoverable ErrorInfo: ");
System.out.println("Type does not exist (ERR4)");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("_id",Lrequest.get("_id"));

View File

@ -6,14 +6,16 @@ import com.jamesquinley.DelegationServices.status;
Hey there! This is the source code for AOTSK-Delegation Server, self explanatory.
Also this is multi line so I can justify using this type of comment.
*/
public class Main
{
public static void main( String[] args )
{
public class Main {
public static void main(String[] args) {
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.");
System.out.println("We're starting the login delegation server, please wait one moment while we check a few things.");
System.out.println("We've started everything, requests are now being served");
isolatedTimer();
}
static void isolatedTimer() {
while (true) {
try {
@ -21,7 +23,9 @@ public class Main
com.jamesquinley.DelegationServices.delegationServices.userAuthetication();
} catch (InterruptedException e) {
e.printStackTrace();
System.out.println("We ran into an issue, this is a known issue and will be fixed once I can figure it out.");
isolatedTimer();
}
}
}
}
}