Added Working Username and password auth, token auth is still under development.

This commit is contained in:
James Quinley 2022-01-23 20:46:37 -08:00
parent 36a936c312
commit 5370d29427
3 changed files with 232 additions and 13 deletions

View File

@ -1,5 +1,6 @@
package com.jamesquinley.DelegationServices; package com.jamesquinley.DelegationServices;
import com.mongodb.BasicDBObject;
import com.mongodb.ConnectionString; import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings; import com.mongodb.MongoClientSettings;
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClient;
@ -25,31 +26,226 @@ public class delegationServices {
static MongoDatabase dClientDatabase = dClient.getDatabase("DelegationRequest"); static MongoDatabase dClientDatabase = dClient.getDatabase("DelegationRequest");
static MongoCollection<Document> dCollection = dClientDatabase.getCollection("accountRequest"); static MongoCollection<Document> dCollection = dClientDatabase.getCollection("accountRequest");
static ConnectionString AccountCon = new ConnectionString("mongodb+srv://DelegationServerClient:UNxldb8abSJkWscG@account.ufgrh.mongodb.net/account?retryWrites=true&w=majority");
static MongoClientSettings AccountSettings = MongoClientSettings.builder()
.applyConnectionString(AccountCon)
.applyToSocketSettings(builder ->
builder.connectTimeout(5, SECONDS)
.readTimeout(6, SECONDS))
.build();
static MongoClient accountGetClient = MongoClients.create(AccountSettings);
static MongoDatabase accountDatabase = accountGetClient.getDatabase("account");
static MongoCollection<Document> accountS = accountDatabase.getCollection("UserPass");
//still need to config //still need to config
public static void delegationProcesser() { public static void delegationProcesser() {
System.out.println("delegation Trigger Set"); Document Lrequest = dCollection.find(eq("status", false)).first();
int ClientID = (int) Lrequest.get("clientid");
String username = (String) Lrequest.get("User");
String password = (String) Lrequest.get("Password");
int requesttype = (int) Lrequest.get("type");
if (requesttype == 0) {
//sync read request
}
if (requesttype == 1) {
//sync write request
}
if (requesttype == 2) {
Document accountServer;
String Password;
String Token;
String Fname;
String Path;
String UserName;
String Email;
try {
accountServer = accountS.find(eq("User", username)).first();
Password = (String) accountServer.get("Password");
if (Password.equals(password)) {
Token = (String) accountServer.get("Token");
Fname = (String) accountServer.get("FName");
Path = (String) accountServer.get("Path");
Email = (String) accountServer.get("Email");
UserName = (String) accountServer.get("User");
delegationTimer.trigger(); BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery5 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 8));
updateQuery1.append("$set",
new BasicDBObject().append("token", Token));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery3.append("$set",
new BasicDBObject().append("path", Path));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery5.append("$set",
new BasicDBObject().append("Password", Password));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
// System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery5);
dCollection.updateOne(searchQuery, updateQuery6);
dCollection.updateOne(searchQuery,updateQuery7);
//delegationTimer.trigger();
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
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.trigger();
}
} catch (Exception 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));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
}
}
if (requesttype == 3) {
Document TResolve = dCollection.find(eq("status", false)).first();
String CTOKEN = (String) TResolve.get("Token");
Document accountServer;
String Password;
String Token;
String Fname;
String Path;
String UserName;
String Email;
try {
accountServer = accountS.find(eq("Token", username)).first();
Password = (String) accountServer.get("Token");
if (Password.equals(CTOKEN)) {
Token = (String) accountServer.get("Token");
Fname = (String) accountServer.get("FName");
Path = (String) accountServer.get("Path");
Email = (String) accountServer.get("Email");
UserName = (String) accountServer.get("User");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
BasicDBObject updateQuery = new BasicDBObject();
BasicDBObject updateQuery1 = new BasicDBObject();
BasicDBObject updateQuery2 = new BasicDBObject();
BasicDBObject updateQuery3 = new BasicDBObject();
BasicDBObject updateQuery4 = new BasicDBObject();
BasicDBObject updateQuery5 = new BasicDBObject();
BasicDBObject updateQuery6 = new BasicDBObject();
BasicDBObject updateQuery7 = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("type", 8));
updateQuery1.append("$set",
new BasicDBObject().append("token", Token));
updateQuery2.append("$set",
new BasicDBObject().append("Fname", Fname));
updateQuery3.append("$set",
new BasicDBObject().append("path", Path));
updateQuery4.append("$set",
new BasicDBObject().append("User", UserName));
updateQuery5.append("$set",
new BasicDBObject().append("Password", Password));
updateQuery7.append("$set",
new BasicDBObject().append("Email", Email));
updateQuery6.append("$set",
new BasicDBObject().append("status", true));
// System.out.println("Sending Info To Forwarding Server");
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
dCollection.updateOne(searchQuery, updateQuery2);
dCollection.updateOne(searchQuery, updateQuery3);
dCollection.updateOne(searchQuery, updateQuery4);
dCollection.updateOne(searchQuery, updateQuery5);
dCollection.updateOne(searchQuery, updateQuery6);
dCollection.updateOne(searchQuery,updateQuery7);
//delegationTimer.trigger();
} else {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
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.trigger();
}
} catch (Exception 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));
updateQuery1.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
dCollection.updateOne(searchQuery, updateQuery1);
//delegationTimer.trigger();
}
}
//above is finding one request and starting wheels
//delegationTimer.trigger();
delegate();
} }
public static void clearMute () public static void Clear () {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("status", true);
BasicDBObject searchQuery1 = new BasicDBObject();
searchQuery1.append("status", false);
dCollection.deleteMany(searchQuery);
dCollection.deleteMany(searchQuery1);
}
public static void delegate ()
{ {
Document userLookMutedLookUp = dCollection.find(eq("complete", false)).first(); Document userLookMutedLookUp = dCollection.find(eq("status", false)).first();
System.out.println(userLookMutedLookUp + "This is a debug Print at line 37");
try { try {
userAuthetication(userLookMutedLookUp); userAuthetication(userLookMutedLookUp);
} catch (NullPointerException NPE) { } catch (NullPointerException NPE) {
System.out.println("There were no users to unmute"); System.out.println("No Pending Authentication Requests");
delegationTimer.trigger(); delegationTimer.trigger();
} }
} }
public static void userAuthetication (Document doc){ public static void userAuthetication (Document doc){
String tmpU = null;
tmpU = (String) doc.get("User");
dCollection.updateOne(eq("User", tmpU), Updates.set("npMUTE", false));
dCollection.updateOne(eq("User", tmpU), Updates.set("wordRC", 1));
dCollection.updateOne(eq("User", tmpU), Updates.set("Credits", 1000));
try { try {
clearMute(); System.out.println("1");
delegationProcesser();
} catch (Exception exr) { } catch (Exception exr) {
System.out.println("Pending Authentication Completed"); System.out.println("Pending Authentication Completed");
delegationTimer.trigger(); delegationTimer.trigger();

View File

@ -14,7 +14,23 @@ public class delegationTimer {
countdownStarter--; countdownStarter--;
if (countdownStarter <= 0) { if (countdownStarter <= 0) {
countdownStarter = 5; countdownStarter = 5;
delegationServices.delegationProcesser(); delegationServices.delegate();
scheduler.shutdown();
}
}
};
scheduler.scheduleAtFixedRate(runnable, 0, 1, TimeUnit.SECONDS);
}
public static void DeleteAllRequests ()
{
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final Runnable runnable = new Runnable() {
int countdownStarter = 60;
public void run() {
countdownStarter--;
if (countdownStarter <= 0) {
countdownStarter = 60;
delegationServices.Clear();
scheduler.shutdown(); scheduler.shutdown();
} }
} }

View File

@ -1,5 +1,9 @@
package com.jamesquinley; package com.jamesquinley;
import com.jamesquinley.DelegationServices.delegationServices;
import static com.jamesquinley.DelegationServices.delegationTimer.DeleteAllRequests;
/** /**
Hey there! This is the source code for AOTSK-Delegation Server, for login Hey there! This is the source code for AOTSK-Delegation Server, for login
* *
@ -10,5 +14,8 @@ public class startup
{ {
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.");
com.jamesquinley.DelegationServices.delegationTimer.trigger(); com.jamesquinley.DelegationServices.delegationTimer.trigger();
DeleteAllRequests();
delegationServices.Clear();
System.out.println("We've started everything, requests are now being served");
} }
} }