@@ -903,23 +903,28 @@ component accessors="true" singleton threadsafe {
903
903
// Access Token Has Expired
904
904
catch ( TokenExpiredException e ) {
905
905
// Do we have autoRefreshValidator turned on and we have an incoming refresh token?
906
- var refreshToken = discoverRefreshToken ();
907
- if ( variables .settings .jwt .enableAutoRefreshValidator && len ( refreshToken ) ) {
908
- // Try to Refresh the tokens
909
- var newTokens = this .refreshToken ( refreshToken );
910
- // Setup payload + authenticate for current request
911
- payload = parseToken ( newTokens .access_token );
912
- // Send back as headers now that they are refreshed
913
- variables .requestService
914
- .getContext ()
915
- .setHTTPHeader (
916
- name : variables .settings .jwt .customAuthHeader ,
917
- value : newTokens .access_token
918
- )
919
- .setHTTPHeader (
920
- name : variables .settings .jwt .customRefreshHeader ,
921
- value : newTokens .refresh_token
922
- );
906
+ if ( variables .settings .jwt .enableAutoRefreshValidator && len ( discoverRefreshToken () ) ) {
907
+ autoRefreshTokens ();
908
+ } else {
909
+ // Error out as normal
910
+ results .messages = e .type & " :" & e .message ;
911
+ return results ;
912
+ }
913
+ }
914
+ catch ( TokenInvalidException e ) {
915
+ // Do we have autoRefreshValidator turned on and we have an incoming refresh token?
916
+ if ( variables .settings .jwt .enableAutoRefreshValidator && len ( discoverRefreshToken () ) ) {
917
+ autoRefreshTokens ();
918
+ } else {
919
+ // Error out as normal
920
+ results .messages = e .type & " :" & e .message ;
921
+ return results ;
922
+ }
923
+ }
924
+ catch ( TokenNotFoundException e ) {
925
+ // Do we have autoRefreshValidator turned on and we have an incoming refresh token?
926
+ if ( variables .settings .jwt .enableAutoRefreshValidator && len ( discoverRefreshToken () ) ) {
927
+ autoRefreshTokens ();
923
928
} else {
924
929
// Error out as normal
925
930
results .messages = e .type & " :" & e .message ;
@@ -952,6 +957,24 @@ component accessors="true" singleton threadsafe {
952
957
return results ;
953
958
}
954
959
960
+ private function autoRefreshTokens () {
961
+ // Try to Refresh the tokens
962
+ var newTokens = this .refreshToken ( discoverRefreshToken () );
963
+ // Setup payload + authenticate for current request
964
+ payload = parseToken ( newTokens .access_token );
965
+ // Send back as headers now that they are refreshed
966
+ variables .requestService
967
+ .getContext ()
968
+ .setHTTPHeader (
969
+ name : variables .settings .jwt .customAuthHeader ,
970
+ value : newTokens .access_token
971
+ )
972
+ .setHTTPHeader (
973
+ name : variables .settings .jwt .customRefreshHeader ,
974
+ value : newTokens .refresh_token
975
+ );
976
+ }
977
+
955
978
/**
956
979
* Verify if the jwt token has the appropriate scopes
957
980
* @permission
0 commit comments