Skip to content

Commit f1a8291

Browse files
authored
Add JTI to JWTTokenProvider (#312)
1 parent ee7a9a9 commit f1a8291

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/main/java/com/uid2/core/service/OperatorJWTTokenProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.time.Instant;
1313
import java.util.HashMap;
1414
import java.util.Set;
15+
import java.util.UUID;
1516
import java.util.stream.Collectors;
1617
import java.security.MessageDigest;
1718

@@ -80,6 +81,7 @@ private String getJWTToken(String issuer, String audience, String operatorKey, S
8081
claims.put("enclaveId", enclaveId);
8182
claims.put("enclaveType", enclaveType);
8283
claims.put("operatorVersion", operatorVersion);
84+
claims.put("jti", UUID.randomUUID().toString());
8385

8486
LOGGER.debug(String.format("Creating token with: Issuer: %s, Audience: %s, Roles: %s, SiteId: %s, EnclaveId: %s, EnclaveType: %s, OperatorVersion: %s", audience, issuer, roleString, siteId, enclaveId, enclaveType, operatorVersion));
8587
return this.jwtTokenProvider.getJWT(expiresAt, this.clock.instant(), claims);

src/test/java/com/uid2/core/service/JWTTokenProviderTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.Base64;
2424
import java.util.HashMap;
2525
import java.util.Optional;
26+
import java.util.UUID;
2627

2728
import static com.uid2.shared.Utils.readToEndAsString;
2829
import static org.junit.jupiter.api.Assertions.*;
@@ -53,8 +54,10 @@ void getJwtReturnsValidToken() throws JWTTokenProvider.JwtSigningException {
5354
headers.put("c", "d");
5455

5556
HashMap<String, String> content = new HashMap<>();
57+
String jti = UUID.randomUUID().toString();
5658
content.put("sub", "subject");
5759
content.put("iss", "issuer");
60+
content.put("jti", jti);
5861

5962
var builder = getBuilder(true, "TestSignature");
6063
JWTTokenProvider provider = new JWTTokenProvider(config, () -> builder);
@@ -74,6 +77,7 @@ void getJwtReturnsValidToken() throws JWTTokenProvider.JwtSigningException {
7477
contentJson.put("iat", i.getEpochSecond());
7578
contentJson.put("sub", "subject");
7679
contentJson.put("iss", "issuer");
80+
contentJson.put("jti", jti);
7781

7882
assertJWT(defaultHeaders.encode(), contentJson.encode(), expectedSig, result);
7983
assertEquals("1234", this.capturedSignRequest.getValue().keyId());

0 commit comments

Comments
 (0)