Skip to content

Commit b26c2ee

Browse files
Merge pull request #289 from IABTechLab/sch-UID2-5355-fix-jwt-token-validation
sch-UID2-5355 refactoring kms client builder
2 parents 1a7d5d4 + d50229a commit b26c2ee

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.util.Base64;
1414
import java.util.Map;
1515
import java.util.Optional;
16+
import java.util.function.Supplier;
1617

1718
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
1819
import software.amazon.awssdk.auth.credentials.WebIdentityTokenFileCredentialsProvider;
@@ -32,13 +33,12 @@
3233
public class JWTTokenProvider {
3334
private static final Logger LOGGER = LoggerFactory.getLogger(JWTTokenProvider.class);
3435
private static final Base64.Encoder encoder = Base64.getUrlEncoder().withoutPadding();
35-
36+
private final Supplier<KmsClientBuilder> kmsClientBuilderSupplier;
3637
private final JsonObject config;
37-
private final KmsClientBuilder kmsClientBuilder;
3838

39-
public JWTTokenProvider(JsonObject config, KmsClientBuilder clientBuilder) {
39+
public JWTTokenProvider(JsonObject config, Supplier<KmsClientBuilder> kmsClientBuilderSupplier) {
4040
this.config = config;
41-
this.kmsClientBuilder = clientBuilder;
41+
this.kmsClientBuilderSupplier = kmsClientBuilderSupplier;
4242
}
4343

4444
public String getJWT(Instant expiresAt, Instant issuedAt, Map<String, String> customClaims) throws JwtSigningException {
@@ -64,7 +64,7 @@ public String getJWT(Instant expiresAt, Instant issuedAt, Map<String, String> he
6464

6565
KmsClient client = null;
6666
try {
67-
client = getKmsClient(this.kmsClientBuilder, this.config);
67+
client = getKmsClient(this.kmsClientBuilderSupplier.get(), this.config);
6868
} catch (URISyntaxException e) {
6969
throw new JwtSigningException(Optional.of("Unable to get KMS Client"), e);
7070
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class OperatorJWTTokenProvider {
2424
private final Clock clock;
2525

2626
public OperatorJWTTokenProvider(JsonObject config) {
27-
this(config, new JWTTokenProvider(config, KmsClient.builder()), Clock.systemUTC());
27+
this(config, new JWTTokenProvider(config, KmsClient::builder), Clock.systemUTC());
2828
}
2929

3030
public OperatorJWTTokenProvider(JsonObject config, JWTTokenProvider jwtTokenProvider, Clock clock) {

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void getJwtReturnsValidToken() throws JWTTokenProvider.JwtSigningException {
5757
content.put("iss", "issuer");
5858

5959
var builder = getBuilder(true, "TestSignature");
60-
JWTTokenProvider provider = new JWTTokenProvider(config, builder);
60+
JWTTokenProvider provider = new JWTTokenProvider(config, () -> builder);
6161

6262
Instant i = Clock.systemUTC().instant();
6363

@@ -84,7 +84,7 @@ void getJwtReturnsValidToken() throws JWTTokenProvider.JwtSigningException {
8484
void getJwtEmptySignatureThrowsException() {
8585
var builder = getBuilder(false, "");
8686

87-
JWTTokenProvider provider = new JWTTokenProvider(config, builder);
87+
JWTTokenProvider provider = new JWTTokenProvider(config, () -> builder);
8888

8989
JWTTokenProvider.JwtSigningException e = assertThrows(
9090
JWTTokenProvider.JwtSigningException.class,
@@ -97,7 +97,7 @@ void getJwtEmptySignatureThrowsException() {
9797
void getJwtEmptySignatureEmptyResponseText() {
9898
var builder = getBuilder(false, "", Optional.empty());
9999

100-
JWTTokenProvider provider = new JWTTokenProvider(config, builder);
100+
JWTTokenProvider provider = new JWTTokenProvider(config, () -> builder);
101101

102102
JWTTokenProvider.JwtSigningException e = assertThrows(
103103
JWTTokenProvider.JwtSigningException.class,
@@ -110,7 +110,7 @@ void getJwtEmptySignatureEmptyResponseText() {
110110
void getJwtEmptySignatureNullResponseText() {
111111
var builder = getBuilder(false, "", null);
112112

113-
JWTTokenProvider provider = new JWTTokenProvider(config, builder);
113+
JWTTokenProvider provider = new JWTTokenProvider(config, () -> builder);
114114

115115
JWTTokenProvider.JwtSigningException e = assertThrows(
116116
JWTTokenProvider.JwtSigningException.class,
@@ -123,7 +123,7 @@ void getJwtEmptySignatureNullResponseText() {
123123
void getJwtSignatureThrowsKmsException() {
124124
var builder = getBuilder(false, "", Optional.empty());
125125

126-
JWTTokenProvider provider = new JWTTokenProvider(config, builder);
126+
JWTTokenProvider provider = new JWTTokenProvider(config, () -> builder);
127127
var ex = KmsException.builder().message("Test Error").build();
128128
when(mockClient.sign(capturedSignRequest.capture())).thenThrow(ex);
129129

@@ -144,7 +144,7 @@ void getJwtMissingKeyInConfig() throws IOException {
144144

145145
var builder = getBuilder(false, "", Optional.empty());
146146

147-
JWTTokenProvider provider = new JWTTokenProvider(config, builder);
147+
JWTTokenProvider provider = new JWTTokenProvider(config, () -> builder);
148148

149149
JWTTokenProvider.JwtSigningException e = assertThrows(
150150
JWTTokenProvider.JwtSigningException.class,

0 commit comments

Comments
 (0)