@@ -657,6 +657,7 @@ public void shouldThrowOnNegativeCustomLeeway() {
657657 }
658658
659659 // Expires At
660+
660661 @ Test
661662 public void shouldValidateExpiresAtWithLeeway () {
662663 String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo" ;
@@ -674,12 +675,26 @@ public void shouldValidateExpiresAtIfPresent() {
674675 String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo" ;
675676 JWTVerifier .BaseVerification verification = (JWTVerifier .BaseVerification ) JWTVerifier .init (Algorithm .HMAC256 ("secret" ));
676677 DecodedJWT jwt = verification
677- .build (mockNow )
678+ .build (mockOneSecondEarlier )
678679 .verify (token );
679680
680681 assertThat (jwt , is (notNullValue ()));
681682 }
682683
684+ @ Test
685+ public void shouldThrowWhenExpiresAtIsNow () {
686+ // exp must be > now
687+ TokenExpiredException e = assertThrows (null , TokenExpiredException .class , () -> {
688+ String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo" ;
689+ JWTVerifier .BaseVerification verification = (JWTVerifier .BaseVerification ) JWTVerifier .init (Algorithm .HMAC256 ("secret" ));
690+ verification
691+ .build (mockNow )
692+ .verify (token );
693+ });
694+ assertThat (e .getMessage (), is ("The Token has expired on 1970-01-18T02:26:32Z." ));
695+ assertThat (e .getExpiredOn (), is (Instant .ofEpochSecond (1477592L )));
696+ }
697+
683698 @ Test
684699 public void shouldThrowOnInvalidExpiresAtIfPresent () {
685700 TokenExpiredException e = assertThrows (null , TokenExpiredException .class , () -> {
@@ -731,7 +746,18 @@ public void shouldThrowOnInvalidNotBeforeIfPresent() {
731746
732747 @ Test
733748 public void shouldValidateNotBeforeIfPresent () {
734- String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo" ;
749+ String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYmYiOjE0Nzc1OTN9.f4zVV0TbbTG5xxDjSoGZ320JIMchGoQCWrnT5MyQdT0" ;
750+ JWTVerifier .BaseVerification verification = (JWTVerifier .BaseVerification ) JWTVerifier .init (Algorithm .HMAC256 ("secret" ));
751+ DecodedJWT jwt = verification
752+ .build (mockOneSecondLater )
753+ .verify (token );
754+
755+ assertThat (jwt , is (notNullValue ()));
756+ }
757+
758+ @ Test
759+ public void shouldAcceptNotBeforeEqualToNow () {
760+ String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYmYiOjE0Nzc1OTJ9.71XBtRmkAa4iKnyhbS4NPW-Xr26eAVAdHZgmupS7a5o" ;
735761 JWTVerifier .BaseVerification verification = (JWTVerifier .BaseVerification ) JWTVerifier .init (Algorithm .HMAC256 ("secret" ));
736762 DecodedJWT jwt = verification
737763 .build (mockNow )
0 commit comments