diff --git a/java_console/build.xml b/java_console/build.xml
index 585a0266c6..8b321d3275 100644
--- a/java_console/build.xml
+++ b/java_console/build.xml
@@ -101,6 +101,12 @@
+
+
+
+
+
+
diff --git a/java_console/ui/src/main/java/com/rusefi/tools/ConsoleTools.java b/java_console/ui/src/main/java/com/rusefi/tools/ConsoleTools.java
index 880505bd44..ec6b51dc48 100644
--- a/java_console/ui/src/main/java/com/rusefi/tools/ConsoleTools.java
+++ b/java_console/ui/src/main/java/com/rusefi/tools/ConsoleTools.java
@@ -21,6 +21,7 @@ import com.rusefi.io.LinkManager;
import com.rusefi.io.serial.SerialIoStreamJSerialComm;
import com.rusefi.io.tcp.BinaryProtocolServer;
import com.rusefi.maintenance.ExecHelper;
+import com.rusefi.server.Backend;
import com.rusefi.tools.online.Online;
import com.rusefi.tune.xml.Msq;
import com.rusefi.ui.AuthTokenPanel;
@@ -60,6 +61,8 @@ public class ConsoleTools {
registerTool("compile_fsio_line", ConsoleTools::invokeCompileExpressionTool, "Convert a line to RPN form.");
registerTool("compile_fsio_file", ConsoleTools::runCompileTool, "Convert all lines from a file to RPN form.");
+ registerTool("proxy_server", Backend::start, "NOT A USER TOOL");
+
registerTool("print_auth_token", args -> printAuthToken(), "Print current rusEFI Online authentication token.");
registerTool(SET_AUTH_TOKEN, ConsoleTools::setAuthToken, "Set rusEFI authentication token.");
registerTool("upload_tune", ConsoleTools::uploadTune, "Upload specified tune file using auth token from settings");
diff --git a/java_console/ui/src/test/java/com/rusefi/ServerTest.java b/java_console/ui/src/test/java/com/rusefi/ServerTest.java
index 20dc7f26d5..5fd6843ada 100644
--- a/java_console/ui/src/test/java/com/rusefi/ServerTest.java
+++ b/java_console/ui/src/test/java/com/rusefi/ServerTest.java
@@ -41,15 +41,7 @@ public class ServerTest {
@Before
public void setTestCertificate() throws MalformedURLException {
File certificate = new File("certificate/test.jks");
- if (!certificate.exists())
- throw new IllegalStateException("Certificate not found " + certificate);
-
- String file = certificate.toURI().toURL().getFile();
- String password = "password";
- System.setProperty("javax.net.ssl.keyStore", file);
- System.setProperty("javax.net.ssl.keyStorePassword", password);
- System.setProperty("javax.net.ssl.trustStore", file);
- System.setProperty("javax.net.ssl.trustStorePassword", password);
+ Backend.setupCertificates(certificate, "password");
}
@Test
diff --git a/java_console/ui/ui.iml b/java_console/ui/ui.iml
index 07864d9b01..6e6a8fb20c 100644
--- a/java_console/ui/ui.iml
+++ b/java_console/ui/ui.iml
@@ -28,7 +28,7 @@
-
+
\ No newline at end of file
diff --git a/java_tools/proxy_server/src/main/java/com/rusefi/server/Backend.java b/java_tools/proxy_server/src/main/java/com/rusefi/server/Backend.java
index ca685fe472..8abb20b1d9 100644
--- a/java_tools/proxy_server/src/main/java/com/rusefi/server/Backend.java
+++ b/java_tools/proxy_server/src/main/java/com/rusefi/server/Backend.java
@@ -18,7 +18,9 @@ import org.takes.rs.RsJson;
import javax.json.Json;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObject;
+import java.io.File;
import java.io.IOException;
+import java.net.MalformedURLException;
import java.net.Socket;
import java.util.*;
import java.util.function.Function;
@@ -70,6 +72,17 @@ public class Backend {
// }, "rusEFI Server Cleanup").start();
}
+ public static void setupCertificates(File certificate, String password) throws MalformedURLException {
+ if (!certificate.exists())
+ throw new IllegalStateException("Certificate not found " + certificate);
+ Objects.requireNonNull(password, "password");
+
+ String file = certificate.toURI().toURL().getFile();
+ System.setProperty("javax.net.ssl.keyStore", file);
+ System.setProperty("javax.net.ssl.keyStorePassword", password);
+ System.setProperty("javax.net.ssl.trustStore", file);
+ System.setProperty("javax.net.ssl.trustStorePassword", password);
+ }
public void runApplicationConnector(int serverPortForApplications, Listener serverSocketCreationCallback) {
// connection from authenticator app which proxies for Tuner Studio
@@ -219,4 +232,17 @@ public class Backend {
return clients.size();
}
}
+
+ public static void start(String[] args) throws MalformedURLException {
+ setupCertificates(new File("keystore.jks"), System.getProperty("RUSEFI_PROXY_PASSWORD"));
+
+ Function userDetailsFunction = new JsonUserDetailsResolver();
+
+ Backend backend = new Backend(userDetailsFunction, 8001, Logger.CONSOLE);
+ backend.runApplicationConnector(8002, parameter -> {
+ });
+ backend.runControllerConnector(8003, parameter -> {
+ });
+
+ }
}
diff --git a/java_tools/proxy_server/src/main/java/com/rusefi/server/JsonUserDetailsResolver.java b/java_tools/proxy_server/src/main/java/com/rusefi/server/JsonUserDetailsResolver.java
new file mode 100644
index 0000000000..cbf85f3ada
--- /dev/null
+++ b/java_tools/proxy_server/src/main/java/com/rusefi/server/JsonUserDetailsResolver.java
@@ -0,0 +1,11 @@
+package com.rusefi.server;
+
+import java.util.function.Function;
+
+public class JsonUserDetailsResolver implements Function {
+ @Override
+ public UserDetails apply(String authToken) {
+ // todo
+ return new UserDetails("", 0);
+ }
+}
diff --git a/java_tools/proxy_server/src/test/java/com/rusefi/server/JsonUserDetailsResolverSandbox.java b/java_tools/proxy_server/src/test/java/com/rusefi/server/JsonUserDetailsResolverSandbox.java
new file mode 100644
index 0000000000..7f77554c9c
--- /dev/null
+++ b/java_tools/proxy_server/src/test/java/com/rusefi/server/JsonUserDetailsResolverSandbox.java
@@ -0,0 +1,9 @@
+package com.rusefi.server;
+
+public class JsonUserDetailsResolverSandbox {
+ public static void main(String[] args) {
+ JsonUserDetailsResolver resolver = new JsonUserDetailsResolver();
+
+ System.out.println(resolver.apply("haba-haba"));
+ }
+}