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");
|
||||
|
||||
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<String, Object> data = Map.of("token", token, "signature", signedToken);
|
||||
|
||||
@@ -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<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();
|
||||
tokens.add(token);
|
||||
tokens.put(cardNumber, token);
|
||||
return token;
|
||||
}
|
||||
|
||||
public boolean isValidToken(String token) {
|
||||
return tokens.contains(token);
|
||||
return tokens.containsValue(token);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user