@@ -657,6 +657,7 @@ public void shouldThrowOnNegativeCustomLeeway() {
657
657
}
658
658
659
659
// Expires At
660
+
660
661
@ Test
661
662
public void shouldValidateExpiresAtWithLeeway () {
662
663
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo" ;
@@ -674,12 +675,26 @@ public void shouldValidateExpiresAtIfPresent() {
674
675
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo" ;
675
676
JWTVerifier .BaseVerification verification = (JWTVerifier .BaseVerification ) JWTVerifier .init (Algorithm .HMAC256 ("secret" ));
676
677
DecodedJWT jwt = verification
677
- .build (mockNow )
678
+ .build (mockOneSecondEarlier )
678
679
.verify (token );
679
680
680
681
assertThat (jwt , is (notNullValue ()));
681
682
}
682
683
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
+
683
698
@ Test
684
699
public void shouldThrowOnInvalidExpiresAtIfPresent () {
685
700
TokenExpiredException e = assertThrows (null , TokenExpiredException .class , () -> {
@@ -731,7 +746,18 @@ public void shouldThrowOnInvalidNotBeforeIfPresent() {
731
746
732
747
@ Test
733
748
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" ;
735
761
JWTVerifier .BaseVerification verification = (JWTVerifier .BaseVerification ) JWTVerifier .init (Algorithm .HMAC256 ("secret" ));
736
762
DecodedJWT jwt = verification
737
763
.build (mockNow )
0 commit comments