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(); }