ACS : Only keep one token per card number
This commit is contained in:
@@ -103,7 +103,7 @@ public class Main {
|
|||||||
Logger.displayInfo("Détails de la carte OK");
|
Logger.displayInfo("Détails de la carte OK");
|
||||||
|
|
||||||
PrivateKey privateKey = CryptoUtils.getPrivateKey(KEY_STORE_PATH, KEY_STORE_PWD, "acs");
|
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);
|
String signedToken = CryptoUtils.signData(privateKey, token);
|
||||||
|
|
||||||
Map<String, Object> data = Map.of("token", token, "signature", signedToken);
|
Map<String, Object> data = Map.of("token", token, "signature", signedToken);
|
||||||
|
|||||||
@@ -2,18 +2,19 @@ package acs.acs.src;
|
|||||||
|
|
||||||
import common.common.src.crypto.CryptoUtils;
|
import common.common.src.crypto.CryptoUtils;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class TokenManager {
|
public class TokenManager {
|
||||||
private final HashSet<String> tokens = new HashSet<String>();
|
private final Map<String, String> tokens = new HashMap<String, String>();
|
||||||
|
|
||||||
public String generateAndStoreToken() {
|
public String generateAndStoreTokenFor(String cardNumber) {
|
||||||
String token = CryptoUtils.generateToken();
|
String token = CryptoUtils.generateToken();
|
||||||
tokens.add(token);
|
tokens.put(cardNumber, token);
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValidToken(String token) {
|
public boolean isValidToken(String token) {
|
||||||
return tokens.contains(token);
|
return tokens.containsValue(token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user