diff --git a/backend/src/main/java/de/thm/run/BackendServer.java b/backend/src/main/java/de/thm/run/BackendServer.java index f52ccd58dac5518ecfda373fc4cb254a478dcf81..814102e9841d484b4015e1569a91a08b16a76dc9 100644 --- a/backend/src/main/java/de/thm/run/BackendServer.java +++ b/backend/src/main/java/de/thm/run/BackendServer.java @@ -28,6 +28,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import static net.sourceforge.argparse4j.impl.Arguments.store; @@ -41,13 +43,13 @@ import static net.sourceforge.argparse4j.impl.Arguments.store; */ public final class BackendServer { + public static String secretKey = "abcddferti5iwiei"; private static int port; private static final Logger logger = LoggerFactory.getLogger(BackendServer.class); public static Path basePath; public static String dbfilepath; public static String customtrackpath; - public static void main(String[] args) { logger.info("Starting Enhort backend server"); @@ -62,6 +64,7 @@ public final class BackendServer { parser.addArgument("--db").help("Path to sqlite metadata database").action(store()); parser.addArgument("--custom").help("Path to custom files").action(store()); parser.addArgument("-p", "--port").help("Port to listen on").setDefault(42412).action(store()); + parser.addArgument("-s", "--secret").help("Keyfile for encrpytion.").setDefault("/home/mmnz21/enhort/key.dat").action(store()); try { input = parser.parseArgs(args); @@ -79,7 +82,7 @@ public final class BackendServer { System.exit(1); } - port = input.getInt("port"); + port = Integer.parseInt(input.getString("port")); if(input.getString("data_path") != null && input.getString("db") != null) { basePath = new File(input.getString("data_path")).toPath(); @@ -102,6 +105,13 @@ public final class BackendServer { }).run(); + + try { + secretKey = Files.readAllLines(new File(input.getString("secret")).toPath()).get(0); + } catch (IOException e) { + logger.warn("No secret key. Using unsafe hard-coded key for encryption."); + } + //run an inital client controller, which will listen to clients ClientController server = new ClientController(port); diff --git a/backend/src/main/java/de/thm/run/ClientController.java b/backend/src/main/java/de/thm/run/ClientController.java index c02526093c9fe07d8e127e5443fec551e11cf06d..aa79b48b1c4569286a8daac037478a570d578553 100644 --- a/backend/src/main/java/de/thm/run/ClientController.java +++ b/backend/src/main/java/de/thm/run/ClientController.java @@ -28,11 +28,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.crypto.SealedObject; -import java.io.*; +import java.io.EOFException; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.net.BindException; import java.net.ServerSocket; import java.net.Socket; -import java.nio.file.Files; import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.atomic.AtomicInteger; @@ -125,15 +127,7 @@ class ClientController implements Runnable{ logger.error("[" + clientID + "]: " + "Exception {}", e.getMessage(), e); } - - try { - secret = Files.readAllLines(new File("/home/mmnz21/enhort/key.dat").toPath()).get(0); - } catch (IOException e) { - //e.printStackTrace(); - logger.info("using local key"); - secret = "abcddferti5iwiei"; - } - + secret = BackendServer.secretKey; } @Override