Skip to content

Commit 69679f4

Browse files
committed
Simplyify catch branches
1 parent 10a26fc commit 69679f4

File tree

1 file changed

+28
-58
lines changed

1 file changed

+28
-58
lines changed

models/jwt/JwtService.cfc

Lines changed: 28 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -894,58 +894,46 @@ component accessors="true" singleton threadsafe {
894894
"messages" : ""
895895
};
896896

897+
var payload = {};
898+
897899
try {
898900
try {
899901
// Try to get the payload from the jwt token, if we have exceptions, we have failed :(
900902
// This takes care of authenticating the jwt tokens for us.
901903
// 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();
907908
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
910916
)
911917
) {
912-
autoRefreshTokens();
913-
} else {
914-
// Error out as normal
915918
results.messages = e.type & ":" & e.message;
916919
return results;
917920
}
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
936932
)
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+
);
949937
}
950938
}
951939
// All exceptions for refreshTokens
@@ -974,24 +962,6 @@ component accessors="true" singleton threadsafe {
974962
return results;
975963
}
976964

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-
995965
/**
996966
* Verify if the jwt token has the appropriate scopes
997967
* @permission

0 commit comments

Comments
 (0)