diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..50f4ceb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+*.iml
+**/.idea/
+**/target/
+**/config.properties
+*.env
diff --git a/.tool-versions b/.tool-versions
new file mode 100644
index 0000000..ff21b5a
--- /dev/null
+++ b/.tool-versions
@@ -0,0 +1 @@
+java temurin-17.0.9+9
diff --git a/README.md b/README.md
index 66103d2..ed9b959 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,16 @@ The `Ride` object is then sent back to `reverse`.
Upon recieving a reply with data from `app`, `reverse` will forward this data to `forward`,
which in turn will finally forward it to the `user`.
+#### Control
+##### Routing / Access Control
+* currently, there is a 1:1 mapping between `forward` and `reverse`.
+ * thus any `Ride` "submitted" to `forward` will
+ naturally be selected, and circle back to `reverse`.
+* thus `forward` and `Ride` can both be stateless.
+* if any access control, name resolution, port forwarding were to happen,
+ it would be done in `reverse`.
+
+
### Overview
@@ -41,3 +51,19 @@ which in turn will finally forward it to the `user`.
* Build (e.g. with `build-install-all.sh`)
* Put the generated `forward-0.1.war` in a servlet container (e.g. Jetty).
* Launch the `reverse-0.1.jar` on your host.
+
+
+### Migration (WIP)
+
+#### How would we even test this?
+* one instance of `foward`
+* one instance of `reverse`
+* one instance of `mirror`
+* `reverse` uses `mirror` as app
+* we call `forward` and see `mirror`
+
+#### Steps TODO
+* migrate `forward` to Spring ✅
+* parametrize URLs
+* check if `mirror` works
+*
diff --git a/build-all.sh b/build-all.sh
new file mode 100644
index 0000000..05bbc75
--- /dev/null
+++ b/build-all.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+cd ./helper &&
+mvn clean install &&
+
+cd ../mirror &&
+./build.sh &&
+
+cd ../reverse &&
+./build.sh &&
+
+cd ../forward &&
+./build.sh &
+
+
+
+
+
+
diff --git a/build-install-all.sh b/build-install-all.sh
deleted file mode 100755
index dfaebf8..0000000
--- a/build-install-all.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-cd ./forward
-./install-locally.sh
-cd ..
-cd ./helper
-./install-locally.sh
-cd ..
-cd ./mirror
-./install-locally.sh
-cd ..
-cd ./reverse
-./install-locally.sh
-cd ..
\ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 0000000..1bda3b4
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,30 @@
+version: '3'
+services:
+
+
+ forward:
+ container_name: forward
+ image: io42630/forward:0.1
+ ports:
+ - "42001:8080"
+ - "42002:5005"
+
+
+ # See .env for vars.
+ reverse:
+ container_name: reverse
+ image: io42630/reverse:0.1
+ ports:
+ - "42005:8090"
+ - "42006:5005"
+ environment:
+ - forward.url=${FORWARD_URL}
+ - app.url=${APP_URL}
+
+
+ mirror:
+ container_name: mirror
+ image: io42630/mirror:0.1
+ ports:
+ - "42003:8080"
+ - "42004:5005"
diff --git a/down.sh b/down.sh
new file mode 100644
index 0000000..2c7f2aa
--- /dev/null
+++ b/down.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+docker compose down &
\ No newline at end of file
diff --git a/dup.sh b/dup.sh
new file mode 100644
index 0000000..31a3530
--- /dev/null
+++ b/dup.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+docker compose up --force-recreate &
\ No newline at end of file
diff --git a/embedded/README.md b/embedded/README.md
deleted file mode 100644
index c53cf7a..0000000
--- a/embedded/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-#### About
-* Uses `com.olexyn.min.http.server.MinJettyServer` to host the servlets.
-* Where to adjust the parameters:
- * for `forward` -> `EmbeddedR`
- * for `reverse` -> `RunAll`
\ No newline at end of file
diff --git a/embedded/pom.xml b/embedded/pom.xml
deleted file mode 100644
index 187fddf..0000000
--- a/embedded/pom.xml
+++ /dev/null
@@ -1,208 +0,0 @@
-
-
-
- 4.0.0
-
- com.olexyn.misp.embedded
- embedded
- 0.1
-
- embedded
-
- http://www.example.com
-
-
- UTF-8
- 1.11
- 1.11
-
-
-
-
-
- junit
- junit
- 4.11
- test
-
-
- com.olexyn.min.http.server
- min-http-server
- 0.1
- compile
-
-
- javax.servlet
- javax.servlet-api
- 4.0.1
- compile
-
-
- com.olexyn.misp.helper
- misp-helper
- 0.1
- compile
-
-
- commons-io
- commons-io
- 2.6
- compile
-
-
- org.eclipse.jetty
- jetty-server
- 9.4.28.v20200408
-
-
- org.eclipse.jetty
- jetty-webapp
- 9.4.28.v20200408
-
-
- org.eclipse.jetty
- jetty-servlets
- 9.4.28.v20200408
-
-
- org.eclipse.jetty
- jetty-servlet
- 9.4.28.v20200408
-
-
- org.eclipse.jetty
- jetty-util
- 9.4.28.v20200408
-
-
- org.eclipse.jetty
- jetty-http
- 9.4.28.v20200408
-
-
- org.eclipse.jetty
- jetty-io
- 9.4.28.v20200408
-
-
- org.eclipse.jetty
- jetty-client
- 9.4.28.v20200408
-
-
- org.eclipse.jetty.websocket
- websocket-server
- 9.4.28.v20200408
-
-
- org.eclipse.jetty.websocket
- websocket-client
- 9.4.28.v20200408
-
-
- org.eclipse.jetty.websocket
- websocket-servlet
- 9.4.28.v20200408
-
-
- org.eclipse.jetty.websocket
- websocket-api
- 9.4.28.v20200408
-
-
- org.eclipse.jetty.aggregate
- jetty-all
- 9.4.28.v20200408
- pom
- test
-
-
- com.olexyn.misp.mirror
- misp-mirror
- 0.1
- compile
-
-
- com.olexyn.misp.rev
- misp-rev
- 0.1
- compile
-
-
- com.olexyn.misp.reverse
- reverse
- 0.1
- compile
-
-
- com.olexyn.misp.fwd
- misp-fwd
- 0.1
- compile
-
-
- com.olexyn.misp.forward
- forward
- 0.1
- compile
-
-
- com.olexyn.misp.mirror
- mirror
- 0.1
- compile
-
-
- org.json
- json
- 20190722
-
-
-
-
-
-
-
-
- maven-clean-plugin
- 3.1.0
-
-
-
- maven-resources-plugin
- 3.0.2
-
-
- maven-compiler-plugin
- 3.8.0
-
-
- maven-surefire-plugin
- 2.22.1
-
-
- maven-jar-plugin
- 3.0.2
-
-
- maven-install-plugin
- 2.5.2
-
-
- maven-deploy-plugin
- 2.8.2
-
-
-
- maven-site-plugin
- 3.7.1
-
-
- maven-project-info-reports-plugin
- 3.0.0
-
-
-
-
-
diff --git a/embedded/src/main/java/com/olexyn/misp/embedded/EmbeddedR.java b/embedded/src/main/java/com/olexyn/misp/embedded/EmbeddedR.java
deleted file mode 100644
index f09eef8..0000000
--- a/embedded/src/main/java/com/olexyn/misp/embedded/EmbeddedR.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.olexyn.misp.embedded;
-
-import com.olexyn.min.http.server.MinJettyServer;
-import com.olexyn.misp.forward.Forward;
-import com.olexyn.misp.mirror.Mirror;
-
-
-public class EmbeddedR implements Runnable {
-
-
- @Override
- public void run() {
- MinJettyServer server = new MinJettyServer();
-
- server.PORT = 8090;
- server.MAX_THREADS = 100;
- server.MIN_THREADS = 10;
- server.IDLE_TIMEOUT = 120;
-
-
- server.addServletWithMapping("/mirror", Mirror.class);
- server.addServletWithMapping("/app", Mirror.class);
- server.addServletWithMapping("/forward", Forward.class);
-
-
- server.start();
- }
-}
diff --git a/embedded/src/main/java/com/olexyn/misp/embedded/RunAll.java b/embedded/src/main/java/com/olexyn/misp/embedded/RunAll.java
deleted file mode 100644
index 6571286..0000000
--- a/embedded/src/main/java/com/olexyn/misp/embedded/RunAll.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.olexyn.misp.embedded;
-
-import com.olexyn.misp.reverse.Reverse;
-
-public class RunAll {
-
- public static void main(String... args) throws InterruptedException {
-
- Thread embeddedT = new Thread(new EmbeddedR());
- embeddedT.start();
-
- Thread.sleep(2000);
-
- Reverse reverse = new Reverse();
- reverse.FORWARD_URL = "http://localhost:8090/forward";
- reverse.APP_URL = "http://localhost:8090/app";
- //reverse.APP_URL = "https://olexyn.com/wp/";
-
-
- Thread reverseT = new Thread(reverse);
- reverseT.start();
- }
-}
diff --git a/forward/Dockerfile b/forward/Dockerfile
index 5e77c5d..9fdef20 100644
--- a/forward/Dockerfile
+++ b/forward/Dockerfile
@@ -1,4 +1,4 @@
FROM eclipse-temurin:17-alpine
COPY /target/forward-0.1.jar /usr/local/lib/forward.jar
-EXPOSE 8080
-ENTRYPOINT ["java","-jar","/usr/local/lib/forward.jar"]
+EXPOSE 8080 5005
+ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005", "-jar","/usr/local/lib/forward.jar"]
diff --git a/forward/README.md b/forward/README.md
deleted file mode 100644
index 1f3348e..0000000
--- a/forward/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-#### About
-The `forward` servlet.
-
-#### Deploy (TODO)
-* Run `install-locally.sh`
-* Find the `forward-0.1.war` in `./target`
-* Copy it to `tomcat/webapps`.
-* Assuming tomcat runs at `http://localhost:9090`
- * Then the servlet will be at `http://localhost:9090/forward-0.1/mirror`
\ No newline at end of file
diff --git a/forward/src/main/java/com/olexyn/misp/forward/web/Forward.java b/forward/src/main/java/com/olexyn/misp/forward/web/Forward.java
index 610e1f8..e88558c 100644
--- a/forward/src/main/java/com/olexyn/misp/forward/web/Forward.java
+++ b/forward/src/main/java/com/olexyn/misp/forward/web/Forward.java
@@ -26,7 +26,7 @@ public class Forward {
private final Map loaded = new HashMap<>();
- @GetMapping
+ @GetMapping("/")
public void doGet(HttpServletRequest request, HttpServletResponse response) {
Thread handleGetRequestThread = new Thread(() -> handleGetRequest(request, response));
@@ -102,7 +102,7 @@ public class Forward {
}
- @PostMapping
+ @PostMapping("/")
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
String payload = IOUtils.toString(request.getReader());
diff --git a/forward/src/test/resources/get-smoke.http b/forward/src/test/resources/get-smoke.http
new file mode 100644
index 0000000..6530c90
--- /dev/null
+++ b/forward/src/test/resources/get-smoke.http
@@ -0,0 +1,6 @@
+POST http://localhost:42001
+Content-Type: application/json
+
+{
+ "hello": "world"
+}
diff --git a/legacy/copy-restart.sh b/legacy/copy-restart.sh
deleted file mode 100755
index 618fa08..0000000
--- a/legacy/copy-restart.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-tomcat_webapps="${HOME}/app/tomcat/webapps"
-jetty_webapps="${HOME}/app/jetty9.4/webapps"
-webapps=$jetty_webapps
-cwd=$(pwd)
-
-/home/user/app/tomcat/bin/shutdown.sh
-
-echo "================"
-echo "END TOMCAT STOP "
-echo "================"
-
-cp -v "${cwd}/misp-mirror/target/misp-mirror-0.1.war" "${webapps}"
-cp -v "${cwd}/misp-rev/target/misp-rev-0.1.war" "${webapps}"
-cp -v "${cwd}/test-proxy/target/test-proxy-0.1.war" "${webapps}"
-
-echo "================"
-echo "END COPY"
-echo "================"
-
-# /home/user/app/tomcat/bin/startup.sh
-
-echo "================"
-echo "END TOMCAT START "
-echo "================"
\ No newline at end of file
diff --git a/legacy/threads-in-mock.png b/legacy/threads-in-mock.png
deleted file mode 100644
index af9ac6e..0000000
Binary files a/legacy/threads-in-mock.png and /dev/null differ
diff --git a/legacy/threads-in-mock.uxf b/legacy/threads-in-mock.uxf
deleted file mode 100644
index f7e52d5..0000000
--- a/legacy/threads-in-mock.uxf
+++ /dev/null
@@ -1,340 +0,0 @@
-
-
- 10
-
- UMLClass
-
- 910
- 50
- 90
- 30
-
- inet
-lt=-
-
-
-
- UMLClass
-
- 680
- 50
- 100
- 30
-
- webhost
-lt=-
-layer=-1
-
-
-
- UMLClass
-
- 910
- 90
- 90
- 30
-
- user
-bg=#90CAF9
-
-
-
- UMLClass
-
- 680
- 90
- 100
- 30
-
- mispbridge
-bg=#B39DDB
-layer=-1
-
-
-
- Relation
-
- 410
- 140
- 300
- 50
-
- lt=<<<-
-POST (Ride)
-Generated by Loop
- 280.0;20.0;10.0;20.0
-
-
- Relation
-
- 760
- 180
- 200
- 40
-
- lt=<<<-
-GET (Request)
-fg=#1E88E5
- 10.0;20.0;180.0;20.0
-
-
- UMLClass
-
- 350
- 90
- 100
- 30
-
- mispclient
-bg=#B39DDB
-layer=-1
-
-
-
- Relation
-
- 410
- 290
- 300
- 50
-
- lt=<<<-
-GET (Ride)(Request)
-(Data)
- 280.0;20.0;10.0;20.0
-
-
- Relation
-
- 760
- 310
- 190
- 40
-
- lt=<<<.
-OK (Data)
-fg=#1E88E5
- 170.0;20.0;10.0;20.0
-
-
- Relation
-
- 410
- 350
- 300
- 40
-
- lt=<<<.
-OK (Ride)
- 10.0;20.0;280.0;20.0
-
-
- UMLClass
-
- 150
- 90
- 80
- 30
-
- app
-bg=#90CAF9
-
-
-
- Relation
-
- 200
- 220
- 200
- 40
-
- lt=<<<-
-GET (Request)
-fg=#1E88E5
- 10.0;20.0;180.0;20.0
-
-
- Relation
-
- 200
- 270
- 200
- 40
-
- lt=<<<.
-OK (Data)
-fg=#1E88E5
- 180.0;20.0;10.0;20.0
-
-
- Relation
-
- 410
- 200
- 300
- 40
-
- lt=<<<.
-OK (Ride)(Request)
- 10.0;20.0;280.0;20.0
-
-
- UMLClass
-
- 150
- 50
- 300
- 30
-
- localhost
-lt=-
-
-
-
- UMLClass
-
- 120
- 20
- 910
- 400
-
-
-lt=..
-layer=-10
-
-
-
- Relation
-
- 940
- 110
- 30
- 310
-
- lt=-
-fg=#1E88E5
- 10.0;10.0;10.0;290.0
-
-
- Relation
-
- 180
- 110
- 30
- 310
-
- lt=-
-fg=#1E88E5
- 10.0;10.0;10.0;290.0
-
-
- UMLClass
-
- 930
- 200
- 40
- 130
-
-
-bg=#F6F6F6
-transparency=0
-layer=4
-
-
-
- UMLClass
-
- 170
- 240
- 40
- 50
-
-
-bg=#F6F6F6
-transparency=0
-layer=4
-
-
-
- Relation
-
- 720
- 110
- 30
- 310
-
- lt=-
-fg=#5E35B1
-layer=-4
- 10.0;10.0;10.0;290.0
-
-
- Relation
-
- 390
- 110
- 30
- 310
-
- lt=-
-fg=#5E35B1
-layer=-4
- 10.0;10.0;10.0;290.0
-
-
- UMLClass
-
- 380
- 160
- 40
- 210
-
-
-bg=#F6F6F6
-transparency=0
-layer=4
-
-
-
- UMLClass
-
- 690
- 160
- 40
- 60
-
-
-bg=#F6F6F6
-transparency=0
-layer=4
-
-
-
- UMLClass
-
- 690
- 310
- 40
- 60
-
-
-bg=#F6F6F6
-transparency=0
-layer=4
-
-
-
- UMLClass
-
- 730
- 200
- 40
- 130
-
-
-bg=#F6F6F6
-transparency=0
-layer=4
-
-
-
diff --git a/mirror/Dockerfile b/mirror/Dockerfile
index d56189a..fe77416 100644
--- a/mirror/Dockerfile
+++ b/mirror/Dockerfile
@@ -1,4 +1,4 @@
FROM eclipse-temurin:17-alpine
COPY /target/mirror-0.1.jar /usr/local/lib/mirror-0.1.jar
-EXPOSE 8080
-ENTRYPOINT ["java","-jar","/usr/local/lib/mirror-0.1.jar"]
+EXPOSE 8080 5005
+ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005", "-jar","/usr/local/lib/mirror-0.1.jar"]
diff --git a/reverse/Dockerfile b/reverse/Dockerfile
index 5fa23f4..6c33e7e 100755
--- a/reverse/Dockerfile
+++ b/reverse/Dockerfile
@@ -1,4 +1,4 @@
FROM eclipse-temurin:17-alpine
COPY /target/reverse-0.1-jar-with-dependencies.jar /usr/local/lib/reverse-0.1-jar-with-dependencies.jar
-EXPOSE 8090
-ENTRYPOINT ["java","-jar","/usr/local/lib/reverse-0.1-jar-with-dependencies.jar"]
+EXPOSE 8090 5005
+ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005", "-jar","/usr/local/lib/reverse-0.1-jar-with-dependencies.jar"]
diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java b/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java
index 11d19b6..2c1f9b5 100644
--- a/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java
+++ b/reverse/src/main/java/com/olexyn/misp/reverse/Reverse.java
@@ -6,8 +6,8 @@ import com.olexyn.misp.reverse.runnable.JourneyGeneratorR;
public class Reverse implements Runnable {
- public String FORWARD_URL = "http://localhost:8090/forward";
- public String APP_URL = "http://localhost:8090/app";
+ public static final String FORWARD_URL = System.getenv("forward.url");
+ public static final String APP_URL = System.getenv("app.url");
public void start() {
diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/Tools.java b/reverse/src/main/java/com/olexyn/misp/reverse/Tools.java
index 62faa08..5042f78 100644
--- a/reverse/src/main/java/com/olexyn/misp/reverse/Tools.java
+++ b/reverse/src/main/java/com/olexyn/misp/reverse/Tools.java
@@ -5,6 +5,7 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
+import java.net.URI;
import java.net.URL;
@@ -13,7 +14,7 @@ public class Tools {
public static String send(String method, String urlString, String body) throws IOException {
- URL url = new URL(urlString);
+ URL url = URI.create(urlString).toURL();
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(method);
diff --git a/reverse/src/main/java/com/olexyn/misp/reverse/runnable/CheckSuppyR.java b/reverse/src/main/java/com/olexyn/misp/reverse/runnable/CheckSuppyR.java
index 3451feb..d9658b4 100644
--- a/reverse/src/main/java/com/olexyn/misp/reverse/runnable/CheckSuppyR.java
+++ b/reverse/src/main/java/com/olexyn/misp/reverse/runnable/CheckSuppyR.java
@@ -5,6 +5,8 @@ import com.olexyn.misp.reverse.Tools;
import lombok.Getter;
import org.json.JSONObject;
+import static com.olexyn.misp.reverse.Reverse.FORWARD_URL;
+
public class CheckSuppyR implements Runnable {
@Getter
@@ -25,7 +27,7 @@ public class CheckSuppyR implements Runnable {
JSONObject obj = new JSONObject().put("available", 0);
try {
- String result = Tools.send("POST", reverse.FORWARD_URL, obj.toString());
+ String result = Tools.send("POST", FORWARD_URL, obj.toString());
JSONObject resultObj = new JSONObject(result);