Starting with remove Instance-Getter of ProtocolBridge

This commit is contained in:
Finn
2025-11-03 18:31:29 +01:00
parent c9b6d50be6
commit f5afd9c3e7
11 changed files with 176 additions and 112 deletions

View File

@@ -20,13 +20,12 @@ import java.io.ObjectOutputStream;
public final class AuthPacket extends OACPacket {
File certificatesFolder = new File("certificates");
File publicFolder = new File(certificatesFolder, "public");
File publicCAFolder = new File(publicFolder, "ca");
File publicServerFolder = new File(publicFolder, "server");
File privateFolder = new File(certificatesFolder, "private");
File privateCAFolder = new File(privateFolder, "ca");
File privateServerFolder = new File(privateFolder, "server");
private ProtocolBridge protocolBridge;
public AuthPacket(ProtocolBridge protocolBridge) {
this();
this.protocolBridge = protocolBridge;
}
public AuthPacket() {
super(4, ProtocolVersion.PV_1_0_0_BETA);
@@ -34,29 +33,29 @@ public final class AuthPacket extends OACPacket {
@Override
public void onWrite(PacketHandler packetHandler, ObjectOutputStream objectOutputStream) throws IOException, ClassNotFoundException {
if (ProtocolBridge.getInstance().isRunningAsDNSServer()) {
objectOutputStream.writeObject(ProtocolBridge.getInstance().getProtocolVersion());
if (protocolBridge.isRunningAsDNSServer()) {
objectOutputStream.writeObject(protocolBridge.getProtocolVersion());
// Read ca files
String caKey = "N/A";
String caPem = "N/A";
String caSrl = "N/A";
try {
objectOutputStream.writeUTF(ProtocolBridge.getInstance().getProtocolDNSServer().getFolderStructure().caPrefix + NetworkUtils.getPublicIPAddress());
objectOutputStream.writeUTF(protocolBridge.getProtocolDNSServer().getFolderStructure().caPrefix + NetworkUtils.getPublicIPAddress());
caKey = FileUtils.readFileFull(new File(
ProtocolBridge.getInstance().getProtocolDNSServer().getFolderStructure().privateCAFolder,
ProtocolBridge.getInstance().getProtocolDNSServer().getFolderStructure().caPrefix + NetworkUtils.getPublicIPAddress() + ".key"));
protocolBridge.getProtocolDNSServer().getFolderStructure().privateCAFolder,
protocolBridge.getProtocolDNSServer().getFolderStructure().caPrefix + NetworkUtils.getPublicIPAddress() + ".key"));
caPem = FileUtils.readFileFull(new File(
ProtocolBridge.getInstance().getProtocolDNSServer().getFolderStructure().publicCAFolder,
ProtocolBridge.getInstance().getProtocolDNSServer().getFolderStructure().caPrefix + NetworkUtils.getPublicIPAddress() + ".pem"));
protocolBridge.getProtocolDNSServer().getFolderStructure().publicCAFolder,
protocolBridge.getProtocolDNSServer().getFolderStructure().caPrefix + NetworkUtils.getPublicIPAddress() + ".pem"));
caSrl = FileUtils.readFileFull(new File(
ProtocolBridge.getInstance().getProtocolDNSServer().getFolderStructure().publicCAFolder,
ProtocolBridge.getInstance().getProtocolDNSServer().getFolderStructure().caPrefix + NetworkUtils.getPublicIPAddress() + ".srl"));
protocolBridge.getProtocolDNSServer().getFolderStructure().publicCAFolder,
protocolBridge.getProtocolDNSServer().getFolderStructure().caPrefix + NetworkUtils.getPublicIPAddress() + ".srl"));
} catch (Exception exception) {
ProtocolBridge.getInstance().getLogger().exception("Failed to read ca-files", exception);
protocolBridge.getLogger().exception("Failed to read ca-files", exception);
setResponseCode(DNSResponseCode.RESPONSE_AUTH_FAILED);
}
@@ -64,40 +63,40 @@ public final class AuthPacket extends OACPacket {
objectOutputStream.writeUTF(caKey);
objectOutputStream.writeUTF(caPem);
objectOutputStream.writeUTF(caSrl);
} else if (ProtocolBridge.getInstance().isRunningAsClient()) {
objectOutputStream.writeInt(ProtocolBridge.getInstance().getProtocolClient().getClientDNSConnection().getClientID());
objectOutputStream.writeObject(ProtocolBridge.getInstance().getProtocolVersion());
} else if (protocolBridge.isRunningAsClient()) {
objectOutputStream.writeInt(protocolBridge.getProtocolClient().getClientDNSConnection().getClientID());
objectOutputStream.writeObject(protocolBridge.getProtocolVersion());
}
}
@Override
public void onRead(PacketHandler packetHandler, ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
if (ProtocolBridge.getInstance().isRunningAsDNSServer() || ProtocolBridge.getInstance().isRunningAsWebServer()) {
if (protocolBridge.isRunningAsDNSServer() || protocolBridge.isRunningAsWebServer()) {
int clientID = objectInputStream.readInt();
ProtocolVersion clientVersion = (ProtocolVersion) objectInputStream.readObject();
ConnectionHandler connectionHandler = ProtocolBridge.getInstance().getProtocolDNSServer().getNetworkServer().getConnectionHandlerByID(clientID);
ConnectionHandler connectionHandler = protocolBridge.getProtocolDNSServer().getNetworkServer().getConnectionHandlerByID(clientID);
if (!ProtocolBridge.getInstance().isVersionSupported(clientVersion)) {
if (!protocolBridge.isVersionSupported(clientVersion)) {
setResponseCode(DNSResponseCode.RESPONSE_AUTH_FAILED);
connectionHandler.disconnect();
return;
} else setResponseCode(DNSResponseCode.RESPONSE_AUTH_SUCCESS);
if (ProtocolBridge.getInstance().isRunningAsDNSServer()) {
ConnectedProtocolClient client = ProtocolBridge.getInstance().getProtocolDNSServer().getClientByID(clientID);
if (protocolBridge.isRunningAsDNSServer()) {
ConnectedProtocolClient client = protocolBridge.getProtocolDNSServer().getClientByID(clientID);
client.setClientVersion(clientVersion);
ProtocolBridge.getInstance().getProtocolSettings().eventManager.executeEvent(new ConnectedProtocolClientEvent(client));
protocolBridge.getProtocolSettings().eventManager.executeEvent(new ConnectedProtocolClientEvent(client));
} else {
ConnectedWebClient client = ProtocolBridge.getInstance().getProtocolWebServer().getClientByID(clientID);
ConnectedWebClient client = protocolBridge.getProtocolWebServer().getClientByID(clientID);
client.setClientVersion(clientVersion);
}
} else if (ProtocolBridge.getInstance().isRunningAsClient()) {
} else if (protocolBridge.isRunningAsClient()) {
ProtocolVersion serverVersion = (ProtocolVersion) objectInputStream.readObject();
if (!ProtocolBridge.getInstance().isVersionSupported(serverVersion)) {
if (!protocolBridge.isVersionSupported(serverVersion)) {
setResponseCode(DNSResponseCode.RESPONSE_AUTH_FAILED);
ProtocolBridge.getInstance().getProtocolClient().getClientDNSConnection().disconnect();
protocolBridge.getProtocolClient().getClientDNSConnection().disconnect();
return;
} else setResponseCode(DNSResponseCode.RESPONSE_AUTH_SUCCESS);
@@ -111,9 +110,9 @@ public final class AuthPacket extends OACPacket {
setResponseCode(DNSResponseCode.RESPONSE_AUTH_FAILED);
else {
File caPemFile = new File(ProtocolBridge.getInstance().getProtocolClient().getFolderStructure().publicCAFolder, caPrefix + ".pem");
File caSrlFile = new File(ProtocolBridge.getInstance().getProtocolClient().getFolderStructure().publicCAFolder, caPrefix + ".srl");
File caKeyFile = new File(ProtocolBridge.getInstance().getProtocolClient().getFolderStructure().privateCAFolder, caPrefix + ".key");
File caPemFile = new File(protocolBridge.getProtocolClient().getFolderStructure().publicCAFolder, caPrefix + ".pem");
File caSrlFile = new File(protocolBridge.getProtocolClient().getFolderStructure().publicCAFolder, caPrefix + ".srl");
File caKeyFile = new File(protocolBridge.getProtocolClient().getFolderStructure().privateCAFolder, caPrefix + ".key");
try {
if (!caPemFile.exists()) caPemFile.createNewFile();
@@ -124,13 +123,13 @@ public final class AuthPacket extends OACPacket {
FileUtils.writeFile(caSrlFile, caKey);
FileUtils.writeFile(caKeyFile, caSrl);
} catch (Exception exception) {
ProtocolBridge.getInstance().getLogger().exception("Failed to create/save ca-files", exception);
protocolBridge.getLogger().exception("Failed to create/save ca-files", exception);
setResponseCode(DNSResponseCode.RESPONSE_AUTH_FAILED);
}
}
ProtocolBridge.getInstance().getProtocolClient().setServerVersion(serverVersion);
ProtocolBridge.getInstance().getProtocolSettings().eventManager.executeEvent(new ConnectedToProtocolDNSServerEvent());
protocolBridge.getProtocolClient().setServerVersion(serverVersion);
protocolBridge.getProtocolSettings().eventManager.executeEvent(new ConnectedToProtocolDNSServerEvent());
}
}
}

View File

@@ -13,10 +13,12 @@ import java.io.ObjectOutputStream;
public final class ValidateDomainPacket extends OACPacket {
private Domain domain;
private int clientID;
private ProtocolBridge protocolBridge;
public ValidateDomainPacket(Domain domain) {
public ValidateDomainPacket(Domain domain, ProtocolBridge protocolBridge) {
this();
this.domain = domain;
this.protocolBridge = protocolBridge;
}
public ValidateDomainPacket() {
@@ -25,17 +27,17 @@ public final class ValidateDomainPacket extends OACPacket {
@Override
public void onWrite(PacketHandler packetHandler, ObjectOutputStream objectOutputStream) throws IOException, ClassNotFoundException {
if (ProtocolBridge.getInstance().isRunningAsClient())
objectOutputStream.writeInt(ProtocolBridge.getInstance().getProtocolClient().getClientDNSConnection().getClientID());
else if (ProtocolBridge.getInstance().isRunningAsDNSServer())
setResponseCode(ProtocolBridge.getInstance().getProtocolDNSServer().validateDomain(domain));
if (protocolBridge.isRunningAsClient())
objectOutputStream.writeInt(protocolBridge.getProtocolClient().getClientDNSConnection().getClientID());
else if (protocolBridge.isRunningAsDNSServer())
setResponseCode(protocolBridge.getProtocolDNSServer().validateDomain(domain));
objectOutputStream.writeObject(domain);
}
@Override
public void onRead(PacketHandler packetHandler, ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
if (ProtocolBridge.getInstance().isRunningAsDNSServer()) clientID = objectInputStream.readInt();
if (protocolBridge.isRunningAsDNSServer()) clientID = objectInputStream.readInt();
domain = (Domain) objectInputStream.readObject();
}
@@ -43,14 +45,14 @@ public final class ValidateDomainPacket extends OACPacket {
protected void onResponseCodeRead(PacketHandler packetHandler, ObjectInputStream objectInputStream) {
super.onResponseCodeRead(packetHandler, objectInputStream);
if (ProtocolBridge.getInstance().isRunningAsDNSServer()) {
if (protocolBridge.isRunningAsDNSServer()) {
try {
ProtocolBridge.getInstance().getProtocolDNSServer().getClientByID(clientID).getConnectionHandler().sendPacket(new ValidateDomainPacket(domain));
protocolBridge.getProtocolDNSServer().getClientByID(clientID).getConnectionHandler().sendPacket(new ValidateDomainPacket(domain, protocolBridge));
} catch (IOException | ClassNotFoundException e) {
ProtocolBridge.getInstance().getProtocolDNSServer().validationPacketSendFailed(domain, ProtocolBridge.getInstance().getProtocolDNSServer().getClientByID(clientID), e);
protocolBridge.getProtocolDNSServer().validationPacketSendFailed(domain, protocolBridge.getProtocolDNSServer().getClientByID(clientID), e);
}
} else if (ProtocolBridge.getInstance().isRunningAsClient())
ProtocolBridge.getInstance().getProtocolClient().validationCompleted(domain, getResponseCode());
} else if (protocolBridge.isRunningAsClient())
protocolBridge.getProtocolClient().validationCompleted(domain, getResponseCode());
}
}