11package com .genexus .JWT .claims ;
22
3+ import java .text .DateFormat ;
34import java .text .SimpleDateFormat ;
45import java .util .Date ;
6+ import java .util .TimeZone ;
57
68import com .auth0 .jwt .JWTCreator .Builder ;
79import com .auth0 .jwt .interfaces .Verification ;
@@ -94,6 +96,7 @@ public static Verification getVerificationWithClaim(String registeredClaimKey, S
9496
9597 public static Verification getVerificationWithClaim (RegisteredClaim registeredClaimKey , String registeredClaimValue ,
9698 long registeredClaimCustomTime , Verification verification , Error error ) {
99+
97100 switch (registeredClaimKey ) {
98101 case iss :
99102 verification .withIssuer (registeredClaimValue );
@@ -141,7 +144,10 @@ public static Builder getBuilderWithClaim(String registeredClaimKey, String regi
141144
142145 public static Builder getBuilderWithClaim (RegisteredClaim registeredClaimKey , String registeredClaimValue ,
143146 Builder tokenBuilder , Error error ) {
147+ DateFormat dateFormat = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss" );
148+ dateFormat .setTimeZone (TimeZone .getTimeZone ("GMT" ));
144149 switch (registeredClaimKey ) {
150+
145151 case iss :
146152 try {
147153 tokenBuilder .withIssuer (registeredClaimValue );
@@ -153,13 +159,17 @@ public static Builder getBuilderWithClaim(RegisteredClaim registeredClaimKey, St
153159
154160 case exp :
155161 Date date = null ;
162+
156163 try {
157- date = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss" ).parse (registeredClaimValue );
164+
165+ date = dateFormat .parse (registeredClaimValue );
166+
158167 } catch (Exception e ) {
159168 error .setError ("RC004" , "Date format error; expected yyyy/MM/dd HH:mm:ss" );
160169 return null ;
161170 }
162171 try {
172+
163173 tokenBuilder .withExpiresAt (date );
164174 } catch (Exception e ) {
165175 error .setError ("RC005" , e .getMessage ());
@@ -186,7 +196,7 @@ public static Builder getBuilderWithClaim(RegisteredClaim registeredClaimKey, St
186196 case nbf :
187197 Date dateNbf = null ;
188198 try {
189- dateNbf = new SimpleDateFormat ( "yyyy/MM/dd HH:mm:ss" ) .parse (registeredClaimValue );
199+ dateNbf = dateFormat .parse (registeredClaimValue );
190200 } catch (Exception e ) {
191201 error .setError ("RC008" , "Date format error; expected yyyy/MM/dd HH:mm:ss" );
192202 return null ;
@@ -201,7 +211,7 @@ public static Builder getBuilderWithClaim(RegisteredClaim registeredClaimKey, St
201211 case iat :
202212 Date dateIat = null ;
203213 try {
204- dateIat = new SimpleDateFormat ( "yyyy/MM/dd HH:mm:ss" ) .parse (registeredClaimValue );
214+ dateIat = dateFormat .parse (registeredClaimValue );
205215 } catch (Exception e ) {
206216 error .setError ("RC010" , "Date format error; expected yyyy/MM/dd HH:mm:ss" );
207217 return null ;
0 commit comments