From 49b73661879502fdf3b7d1b30d65d323414d5178 Mon Sep 17 00:00:00 2001 From: Matthias Guillitte Date: Tue, 9 Dec 2025 11:03:36 +0100 Subject: [PATCH] ACS : Only keep one token per card number --- src/main/java/acs/acs/src/Main.java | 2 +- src/main/java/acs/acs/src/TokenManager.java | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/acs/acs/src/Main.java b/src/main/java/acs/acs/src/Main.java index ad93908..5f42d39 100644 --- a/src/main/java/acs/acs/src/Main.java +++ b/src/main/java/acs/acs/src/Main.java @@ -103,7 +103,7 @@ public class Main { Logger.displayInfo("Détails de la carte OK"); PrivateKey privateKey = CryptoUtils.getPrivateKey(KEY_STORE_PATH, KEY_STORE_PWD, "acs"); - String token = tokenManager.generateAndStoreToken(); + String token = tokenManager.generateAndStoreTokenFor(creditCard.number()); String signedToken = CryptoUtils.signData(privateKey, token); Map data = Map.of("token", token, "signature", signedToken); diff --git a/src/main/java/acs/acs/src/TokenManager.java b/src/main/java/acs/acs/src/TokenManager.java index 259b6a3..374895f 100644 --- a/src/main/java/acs/acs/src/TokenManager.java +++ b/src/main/java/acs/acs/src/TokenManager.java @@ -2,18 +2,19 @@ package acs.acs.src; import common.common.src.crypto.CryptoUtils; -import java.util.HashSet; +import java.util.HashMap; +import java.util.Map; public class TokenManager { - private final HashSet tokens = new HashSet(); + private final Map tokens = new HashMap(); - public String generateAndStoreToken() { + public String generateAndStoreTokenFor(String cardNumber) { String token = CryptoUtils.generateToken(); - tokens.add(token); + tokens.put(cardNumber, token); return token; } public boolean isValidToken(String token) { - return tokens.contains(token); + return tokens.containsValue(token); } }