1111import com .fasterxml .jackson .databind .deser .std .StdDeserializer ;
1212
1313import java .io .IOException ;
14- import java .util .Date ;
15- import java .util .Map ;
14+ import java .util .*;
1615
1716class PayloadDeserializer extends StdDeserializer <Payload > {
1817
@@ -34,7 +33,7 @@ public Payload deserialize(JsonParser p, DeserializationContext ctxt) throws IOE
3433
3534 String issuer = getString (tree , PublicClaims .ISSUER );
3635 String subject = getString (tree , PublicClaims .SUBJECT );
37- String [] audience = getStringOrArray (tree , PublicClaims .AUDIENCE );
36+ List < String > audience = getStringOrArray (tree , PublicClaims .AUDIENCE );
3837 Date expiresAt = getDateFromSeconds (tree , PublicClaims .EXPIRES_AT );
3938 Date notBefore = getDateFromSeconds (tree , PublicClaims .NOT_BEFORE );
4039 Date issuedAt = getDateFromSeconds (tree , PublicClaims .ISSUED_AT );
@@ -43,25 +42,25 @@ public Payload deserialize(JsonParser p, DeserializationContext ctxt) throws IOE
4342 return new PayloadImpl (issuer , subject , audience , expiresAt , notBefore , issuedAt , jwtId , tree );
4443 }
4544
46- String [] getStringOrArray (Map <String , JsonNode > tree , String claimName ) throws JWTDecodeException {
45+ List < String > getStringOrArray (Map <String , JsonNode > tree , String claimName ) throws JWTDecodeException {
4746 JsonNode node = tree .remove (claimName );
4847 if (node == null || node .isNull () || !(node .isArray () || node .isTextual ())) {
4948 return null ;
5049 }
5150 if (node .isTextual () && !node .asText ().isEmpty ()) {
52- return new String []{ node .asText ()} ;
51+ return Collections . singletonList ( node .asText ()) ;
5352 }
5453
5554 ObjectMapper mapper = new ObjectMapper ();
56- String [] arr = new String [ node .size ()] ;
55+ List < String > list = new ArrayList <>( node .size ()) ;
5756 for (int i = 0 ; i < node .size (); i ++) {
5857 try {
59- arr [ i ] = mapper .treeToValue (node .get (i ), String .class );
58+ list . add ( mapper .treeToValue (node .get (i ), String .class ) );
6059 } catch (JsonProcessingException e ) {
6160 throw new JWTDecodeException ("Couldn't map the Claim's array contents to String" , e );
6261 }
6362 }
64- return arr ;
63+ return list ;
6564 }
6665
6766 Date getDateFromSeconds (Map <String , JsonNode > tree , String claimName ) {
0 commit comments