Skip to content

Commit b742d17

Browse files
authored
Update com.auth0:java-jwt to 4.4.0 (#259)
1 parent 39145c4 commit b742d17

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<dependency>
9191
<groupId>com.auth0</groupId>
9292
<artifactId>java-jwt</artifactId>
93-
<version>3.17.0</version>
93+
<version>4.4.0</version>
9494
</dependency>
9595
<dependency>
9696
<groupId>org.apache.maven</groupId>

api/src/main/java/com/messagebird/RequestValidator.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
import com.auth0.jwt.algorithms.Algorithm;
66
import com.auth0.jwt.exceptions.JWTVerificationException;
77
import com.auth0.jwt.exceptions.SignatureVerificationException;
8-
import com.auth0.jwt.interfaces.Clock;
8+
import com.auth0.jwt.interfaces.Claim;
99
import com.auth0.jwt.interfaces.DecodedJWT;
1010
import com.auth0.jwt.interfaces.JWTVerifier;
1111
import com.messagebird.exceptions.RequestValidationException;
1212

1313
import java.security.MessageDigest;
1414
import java.security.NoSuchAlgorithmException;
15+
import java.time.Clock;
1516

1617
/**
1718
* RequestValidator validates request signature signed by MessageBird services.
@@ -128,7 +129,8 @@ public DecodedJWT validateSignature(Clock clock, String signature, String url, b
128129
if (!skipURLValidation)
129130
builder.withClaim("url_hash", calculateSha256(url.getBytes()));
130131

131-
boolean payloadHashClaimExist = !jwt.getClaim("payload_hash").isNull();
132+
Claim payloadHashClaim = jwt.getClaim("payload_hash");
133+
boolean payloadHashClaimExist = !(payloadHashClaim.isNull() || payloadHashClaim.isMissing());
132134
if (requestBody != null && requestBody.length > 0) {
133135
if (!payloadHashClaimExist) {
134136
throw new RequestValidationException("The Claim 'payload_hash' is not set but payload is present.");

api/src/test/java/com/messagebird/RequestValidatorTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.messagebird;
22

3-
import com.auth0.jwt.interfaces.Clock;
43
import com.fasterxml.jackson.core.type.TypeReference;
54
import com.fasterxml.jackson.databind.ObjectMapper;
65
import com.messagebird.exceptions.RequestValidationException;
@@ -13,7 +12,10 @@
1312

1413
import java.io.IOException;
1514
import java.nio.charset.StandardCharsets;
15+
import java.time.Clock;
16+
import java.time.Instant;
1617
import java.time.OffsetDateTime;
18+
import java.time.ZoneId;
1719
import java.util.*;
1820
import java.util.stream.Collectors;
1921

@@ -64,10 +66,7 @@ public static Collection<Object[]> data() throws IOException {
6466
public void testWebhookSignature() throws Throwable {
6567
RequestValidator validator = new RequestValidator(testCase.secret != null ? testCase.secret : "");
6668

67-
Clock clock = mock(Clock.class);
68-
Date clockDate = spy(Date.from(OffsetDateTime.parse(testCase.timestamp).toInstant()));
69-
when(clock.getToday()).thenReturn(clockDate);
70-
69+
Clock clock = Clock.fixed(OffsetDateTime.parse(testCase.timestamp).toInstant(), ZoneId.systemDefault());
7170
ThrowingRunnable runnable = () -> validator.validateSignature(clock, testCase.token, testCase.url,
7271
(testCase.payload == null) ? null : testCase.payload.getBytes(StandardCharsets.UTF_8));
7372

0 commit comments

Comments
 (0)