Allows account migration
This commit is contained in:
parent
db59087288
commit
2914419260
@ -134,7 +134,49 @@ public class electronicMailHandler {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
System.err.println("Was Not Sent Because Of An Error.");
|
System.err.println("Was Not Sent Because Of An Error.");
|
||||||
}
|
}
|
||||||
} private static class SMTPAuthenticator extends
|
|
||||||
|
}
|
||||||
|
public static void otkMigrate (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 Account Notice");
|
||||||
|
message.setText("The migration process has been completed, and the key is no longer valid.\n" +
|
||||||
|
"You will not receive a migration popup on login unless the account service changes hashes again.\n" +
|
||||||
|
"Welcome back to your account, and have a great day!\n" +
|
||||||
|
"\n\n\n\n\n" +
|
||||||
|
" This email is automated, sent to the owner of the account (" + User + ")." + " Please don't reply to this email.");
|
||||||
|
|
||||||
|
Transport.send(message);
|
||||||
|
System.out.println("Alert Sent");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
System.err.println("Was Not Sent Because Of An Error.");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
private static class SMTPAuthenticator extends
|
||||||
javax.mail.Authenticator {
|
javax.mail.Authenticator {
|
||||||
public PasswordAuthentication
|
public PasswordAuthentication
|
||||||
getPasswordAuthentication() {
|
getPasswordAuthentication() {
|
||||||
|
@ -26,4 +26,13 @@ public class secureCalls {
|
|||||||
};
|
};
|
||||||
runnable.run();
|
runnable.run();
|
||||||
}
|
}
|
||||||
|
public static void accountMigrationComplete (String email, String user)
|
||||||
|
{
|
||||||
|
final Runnable runnable = new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
electronicMailHandler.otkMigrate(email, user);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
runnable.run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ import org.bson.Document;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static com.jamesquinley.Asecure.secureCalls.accountMigrationComplete;
|
||||||
import static com.mongodb.client.model.Filters.eq;
|
import static com.mongodb.client.model.Filters.eq;
|
||||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||||
|
|
||||||
@ -161,7 +162,7 @@ public class delegationServices {
|
|||||||
|
|
||||||
|
|
||||||
System.out.println("Delegation Has Started");
|
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) {
|
if (requesttype == 47) {
|
||||||
System.out.println("Self Updater download Request");
|
System.out.println("Self Updater download Request");
|
||||||
BasicDBObject searchQuery = new BasicDBObject();
|
BasicDBObject searchQuery = new BasicDBObject();
|
||||||
@ -522,7 +523,7 @@ public class delegationServices {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
System.out.println("RS1");
|
System.out.println("RS14");
|
||||||
if (Password.equals(password)) {
|
if (Password.equals(password)) {
|
||||||
System.out.println("R3c");
|
System.out.println("R3c");
|
||||||
Token = (int) accountServer.get("Token");
|
Token = (int) accountServer.get("Token");
|
||||||
@ -620,31 +621,160 @@ public class delegationServices {
|
|||||||
if (requesttype == 54) {
|
if (requesttype == 54) {
|
||||||
System.out.println("Verifying OTK");
|
System.out.println("Verifying OTK");
|
||||||
String userKey = (String) Lrequest.get("otk");
|
String userKey = (String) Lrequest.get("otk");
|
||||||
|
String userName = (String) Lrequest.get("recoverUser");
|
||||||
|
String serverUserName;
|
||||||
|
userKey = userKey.toUpperCase();
|
||||||
|
System.out.println(userKey);
|
||||||
Document accountServer;
|
Document accountServer;
|
||||||
try {
|
try {
|
||||||
accountServer = accountS.find(eq("tempKey", userKey)).first();
|
accountServer = accountS.find(eq("tempKey", userKey)).first();
|
||||||
|
serverUserName = (String) accountServer.get("User");
|
||||||
if (accountServer.get("Status").equals(true))
|
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) {
|
} catch (Exception ERC) {
|
||||||
|
System.out.println("This key is incorrect." + ERC);
|
||||||
BasicDBObject searchQuery = new BasicDBObject();
|
BasicDBObject searchQuery = new BasicDBObject();
|
||||||
searchQuery.append("clientid", ClientID);
|
searchQuery.append("clientid", 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", 9));
|
new BasicDBObject().append("type",56));
|
||||||
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.trigger();
|
|
||||||
delegationTimer.DeleteTargetRequest(ClientID);
|
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) {
|
if (requesttype == 3) {
|
||||||
System.out.println("Login Request (TKN)");
|
System.out.println("Login Request (TKN)");
|
||||||
int CTOKEN = (int) Lrequest.get("Token");
|
int CTOKEN = (int) Lrequest.get("Token");
|
||||||
|
@ -2,4 +2,5 @@ package com.jamesquinley.DelegationServices;
|
|||||||
|
|
||||||
public class status {
|
public class status {
|
||||||
public static boolean betaServer = false;
|
public static boolean betaServer = false;
|
||||||
|
//Beta server has been discontinued, the database that the server depended on has been shut down.
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user