@@ -894,58 +894,46 @@ component accessors="true" singleton threadsafe {
894
894
" messages" : " "
895
895
};
896
896
897
+ var payload = {};
898
+
897
899
try {
898
900
try {
899
901
// Try to get the payload from the jwt token, if we have exceptions, we have failed :(
900
902
// This takes care of authenticating the jwt tokens for us.
901
903
// getPayload() => parseToken() => authenticateToken()
902
- var payload = getPayload ();
903
- }
904
- // Access Token Has Expired
905
- catch ( TokenExpiredException e ) {
906
- // Do we have autoRefreshValidator turned on and we have an incoming refresh token?
904
+ payload = getPayload ();
905
+ } catch ( any e ) {
906
+ // if we aren't trying to refresh, return the false response now.
907
+ var refreshToken = discoverRefreshToken ();
907
908
if (
908
- variables .settings .jwt .enableAutoRefreshValidator && len (
909
- discoverRefreshToken ()
909
+ ! variables .settings .jwt .enableAutoRefreshValidator ||
910
+ ! len ( refreshToken ) ||
911
+ ! listFindNoCase (
912
+ " TokenExpiredException" ,
913
+ " TokenInvalidException" ,
914
+ " TokenNotFoundException" ,
915
+ e .type
910
916
)
911
917
) {
912
- autoRefreshTokens ();
913
- } else {
914
- // Error out as normal
915
918
results .messages = e .type & " :" & e .message ;
916
919
return results ;
917
920
}
918
- } catch ( TokenInvalidException e ) {
919
- // Do we have autoRefreshValidator turned on and we have an incoming refresh token?
920
- if (
921
- variables .settings .jwt .enableAutoRefreshValidator && len (
922
- discoverRefreshToken ()
923
- )
924
- ) {
925
- autoRefreshTokens ();
926
- } else {
927
- // Error out as normal
928
- results .messages = e .type & " :" & e .message ;
929
- return results ;
930
- }
931
- } catch ( TokenNotFoundException e ) {
932
- // Do we have autoRefreshValidator turned on and we have an incoming refresh token?
933
- if (
934
- variables .settings .jwt .enableAutoRefreshValidator && len (
935
- discoverRefreshToken ()
921
+
922
+ // Try to Refresh the tokens
923
+ var newTokens = this .refreshToken ( refreshToken );
924
+ // Setup payload + authenticate for current request
925
+ payload = parseToken ( newTokens .access_token );
926
+ // Send back as headers now that they are refreshed
927
+ variables .requestService
928
+ .getContext ()
929
+ .setHTTPHeader (
930
+ name : variables .settings .jwt .customAuthHeader ,
931
+ value : newTokens .access_token
936
932
)
937
- ) {
938
- autoRefreshTokens ();
939
- } else {
940
- // Error out as normal
941
- results .messages = e .type & " :" & e .message ;
942
- return results ;
943
- }
944
- }
945
- // All other exceptions
946
- catch ( Any e ) {
947
- results .messages = e .type & " :" & e .message ;
948
- return results ;
933
+ .setHTTPHeader (
934
+ name : variables .settings .jwt .customRefreshHeader ,
935
+ value : newTokens .refresh_token
936
+ );
949
937
}
950
938
}
951
939
// All exceptions for refreshTokens
@@ -974,24 +962,6 @@ component accessors="true" singleton threadsafe {
974
962
return results ;
975
963
}
976
964
977
- private function autoRefreshTokens (){
978
- // Try to Refresh the tokens
979
- var newTokens = this .refreshToken ( discoverRefreshToken () );
980
- // Setup payload + authenticate for current request
981
- payload = parseToken ( newTokens .access_token );
982
- // Send back as headers now that they are refreshed
983
- variables .requestService
984
- .getContext ()
985
- .setHTTPHeader (
986
- name : variables .settings .jwt .customAuthHeader ,
987
- value : newTokens .access_token
988
- )
989
- .setHTTPHeader (
990
- name : variables .settings .jwt .customRefreshHeader ,
991
- value : newTokens .refresh_token
992
- );
993
- }
994
-
995
965
/**
996
966
* Verify if the jwt token has the appropriate scopes
997
967
* @permission
0 commit comments