Skip to content

Commit 004438a

Browse files
committed
Switched from json annotations to custom deserializer
1 parent 8f0fcaa commit 004438a

File tree

2 files changed

+72
-11
lines changed

2 files changed

+72
-11
lines changed

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/model/CognitoAuthorizerClaims.java

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
package com.amazonaws.serverless.proxy.internal.model;
1414

1515

16-
import com.fasterxml.jackson.annotation.JsonProperty;
16+
import com.amazonaws.serverless.proxy.internal.serialization.CognitoAuthorizerClaimsDeserializer;
1717

18-
import java.time.format.DateTimeFormatter;
18+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
1919

2020

2121
/**
@@ -36,31 +36,25 @@
3636
* }
3737
* </pre>
3838
*/
39+
@JsonDeserialize(using = CognitoAuthorizerClaimsDeserializer.class)
3940
public class CognitoAuthorizerClaims {
4041

4142
//-------------------------------------------------------------
4243
// Variables - Private
4344
//-------------------------------------------------------------
4445

45-
@JsonProperty(value = "sub")
4646
private String subject;
47-
@JsonProperty(value = "aud")
4847
private String audience;
49-
@JsonProperty(value = "iss")
5048
private String issuer;
51-
@JsonProperty(value = "token_use")
5249
private String tokenUse;
53-
@JsonProperty(value = "cognito:username")
5450
private String username;
5551
private String email;
56-
@JsonProperty(value = "email_verified")
5752
private boolean emailVerified;
58-
@JsonProperty(value = "auth_time")
5953
private Long authTime;
60-
@JsonProperty(value = "exp")
6154
private String expiration;
62-
@JsonProperty(value = "iat")
6355
private String issuedAt;
56+
private String phoneNumber;
57+
private boolean phoneNumberVerified;
6458

6559

6660
//-------------------------------------------------------------
@@ -163,4 +157,24 @@ public String getIssuedAt() {
163157
public void setIssuedAt(String issuedAt) {
164158
this.issuedAt = issuedAt;
165159
}
160+
161+
162+
public String getPhoneNumber() {
163+
return phoneNumber;
164+
}
165+
166+
167+
public void setPhoneNumber(String phoneNumber) {
168+
this.phoneNumber = phoneNumber;
169+
}
170+
171+
172+
public boolean isPhoneNumberVerified() {
173+
return phoneNumberVerified;
174+
}
175+
176+
177+
public void setPhoneNumberVerified(boolean phoneNumberVerified) {
178+
this.phoneNumberVerified = phoneNumberVerified;
179+
}
166180
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.amazonaws.serverless.proxy.internal.serialization;
2+
3+
4+
import com.amazonaws.serverless.proxy.internal.model.CognitoAuthorizerClaims;
5+
6+
import com.fasterxml.jackson.core.JsonParser;
7+
import com.fasterxml.jackson.core.JsonProcessingException;
8+
import com.fasterxml.jackson.databind.DeserializationContext;
9+
import com.fasterxml.jackson.databind.JsonDeserializer;
10+
import com.fasterxml.jackson.databind.JsonNode;
11+
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
12+
13+
import java.io.IOException;
14+
15+
16+
/**
17+
* Created by bulianis on 5/2/17.
18+
*/
19+
public class CognitoAuthorizerClaimsDeserializer extends JsonDeserializer<CognitoAuthorizerClaims> {
20+
@Override
21+
public CognitoAuthorizerClaims deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
22+
throws IOException, JsonProcessingException {
23+
CognitoAuthorizerClaims output = new CognitoAuthorizerClaims();
24+
JsonNode node = jsonParser.getCodec().readTree(jsonParser);
25+
26+
output.setSubject(node.get("sub").asText());
27+
output.setUsername(node.get("cognito:username").asText());
28+
output.setIssuer(node.get("iss").asText());
29+
output.setAuthTime(node.get("auth_time").asLong());
30+
output.setAudience(node.get("aud").asText());
31+
output.setExpiration(node.get("exp").asText());
32+
output.setTokenUse(node.get("token_use").asText());
33+
output.setIssuedAt(node.get("iat").asText());
34+
35+
if (node.get("email") != null) {
36+
output.setEmailVerified(node.get("email_verified").asBoolean());
37+
output.setEmail(node.get("email").asText());
38+
}
39+
40+
if (node.get("phone_number") != null) {
41+
output.setPhoneNumber(node.get("phone_number").asText());
42+
output.setPhoneNumberVerified(node.get("phone_number_verified").asBoolean());
43+
}
44+
45+
return output;
46+
}
47+
}

0 commit comments

Comments
 (0)