diff --git a/assets/pages/index.html b/assets/pages/index.html
index 945c0ba..2f127bf 100644
--- a/assets/pages/index.html
+++ b/assets/pages/index.html
@@ -1,86 +1,110 @@
+
MASI 3DSecure
+
-
-
-
Login
-
-
-
-
-
-
-
-
Payment
-
-
-
-
-
+
+
+
Login
+
+
+
+
+
+
+
+
Payment
+
+
+
+
+
-
+ let token = document.getElementById("token-input").value;
+
+ await fetch("/payement", {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json"
+ //"Authorization" : "username:password"
+ },
+ body: JSON.stringify(token)
+ })
+ .then(response => {
+ if (response.ok) {
+ //Logique à executer si serveur répond avec 200 HTTP
+ } else {
+ throw new Error("Payment request failed")
+ }
+ })
+ .catch(error => {
+ console.error(error);
+ });
+ })
+
+
\ No newline at end of file
diff --git a/src/main/java/acq/acq/src/Main.java b/src/main/java/acq/acq/src/Main.java
index b48f3c6..b235d10 100644
--- a/src/main/java/acq/acq/src/Main.java
+++ b/src/main/java/acq/acq/src/Main.java
@@ -8,6 +8,8 @@ import javax.net.ssl.*;
import static common.common.src.ports.Ports.*;
+import java.io.IOException;
+
public class Main {
private static final String HOST = "127.0.0.1";
@@ -51,10 +53,19 @@ public class Main {
}
}
-
-
-
public static void handleRequest(SSLSocket serverSocket) {
- Logger.displayInfo("Request handled");
+ try{
+ String request = SocketManager.readResponse(serverSocket);
+ Logger.displayReceived(request);
+
+
+
+
+
+
+
+ }catch (IOException ioe){
+ throw new RuntimeException(ioe);
+ }
}
}
diff --git a/src/main/java/acq/acq/src/json/Token.java b/src/main/java/acq/acq/src/json/Token.java
new file mode 100644
index 0000000..8e6936a
--- /dev/null
+++ b/src/main/java/acq/acq/src/json/Token.java
@@ -0,0 +1,10 @@
+package acq.acq.src.json;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public record Token(
+ @JsonProperty("token")
+ String token,
+ @JsonProperty("signature")
+ String signature) {
+}
diff --git a/src/main/java/acs/acs/src/Main.java b/src/main/java/acs/acs/src/Main.java
index 0c0597e..684ae00 100644
--- a/src/main/java/acs/acs/src/Main.java
+++ b/src/main/java/acs/acs/src/Main.java
@@ -48,6 +48,10 @@ public class Main {
authThread.start();
}
+ /**
+ * Gére les requets de vérification de token
+ * @param clientSocket SSLsocket to listen to
+ */
private static void handleRequest(SSLSocket clientSocket) {
try{
String response = SocketManager.readResponse(clientSocket);
diff --git a/src/main/java/httpServer/httpServer/src/Main.java b/src/main/java/httpServer/httpServer/src/Main.java
index 76c0664..6ec5692 100644
--- a/src/main/java/httpServer/httpServer/src/Main.java
+++ b/src/main/java/httpServer/httpServer/src/Main.java
@@ -1,5 +1,7 @@
package httpServer.httpServer.src;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
import com.sun.net.httpserver.HttpsConfigurator;
import com.sun.net.httpserver.HttpsParameters;
import com.sun.net.httpserver.HttpsServer;
diff --git a/src/main/java/httpServer/httpServer/src/handlers/RequestHandler.java b/src/main/java/httpServer/httpServer/src/handlers/RequestHandler.java
index bc002e0..8291d33 100644
--- a/src/main/java/httpServer/httpServer/src/handlers/RequestHandler.java
+++ b/src/main/java/httpServer/httpServer/src/handlers/RequestHandler.java
@@ -1,9 +1,11 @@
package httpServer.httpServer.src.handlers;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.net.httpserver.HttpExchange;
import common.common.src.html.HtmlManager;
import common.common.src.logger.Logger;
+import common.common.src.json.JsonManager;
import httpServer.httpServer.src.annotations.AllowedVerb;
import httpServer.httpServer.src.annotations.OnlyAuthorizedClients;
import httpServer.httpServer.src.authorization.AuthorizedClients;
@@ -11,6 +13,7 @@ import httpServer.httpServer.src.authorization.Client;
import java.io.*;
import java.nio.charset.StandardCharsets;
+import java.util.Map;
public class RequestHandler implements IRequestHandler {
@@ -25,12 +28,38 @@ public class RequestHandler implements IRequestHandler {
}
}
- @AllowedVerb(name = "GET")
- @OnlyAuthorizedClients
+ @AllowedVerb(name = "POST")
+ //@OnlyAuthorizedClients
public void handlePayment(HttpExchange exchange) {
Logger.displayReceived("/payment request");
try{
- respondToGet(exchange, "./assets/pages/payment.html");
+ InputStream is = exchange.getRequestBody();
+ String body = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))
+ .lines()
+ .reduce("", (acc, line) -> acc + line + "\n");
+
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode node = mapper.readTree(body);
+
+ String token = node.get("token").asText();
+
+ System.out.println("Received Payement POST data:\n" + token);
+
+ // Build json payload
+
+ Map map = Map.of("token", token);
+ String jsonString = JsonManager.serialize(map);
+
+ // Send request to ACQ
+
+
+
+
+ // Wait ACQ ACK or NAK
+
+
+ // Return result
+
} catch(Exception e){
e.printStackTrace();
}