@@ -396,8 +396,12 @@ func getAccessTokenForPrivateKey(httpClient *http.Client, orgURL, clientAssertio
396396 tokenResponse.Body = origResp
397397 var accessToken *RequestAccessToken
398398
399- if tokenResponse.StatusCode >= 400 && strings.Contains(string(respBody), "invalid_dpop_proof") {
400- return getAccessTokenForDpopPrivateKey(tokenRequest, httpClient, orgURL, " " , maxRetries, maxBackoff)
399+ if tokenResponse.StatusCode >= 300 {
400+ if strings.Contains(string(respBody), " invalid_dpop_proof" ) {
401+ return getAccessTokenForDpopPrivateKey(tokenRequest, httpClient, orgURL, " " , maxRetries, maxBackoff)
402+ } else {
403+ return nil, " " , nil, err
404+ }
401405 }
402406
403407 _, err = buildResponse(tokenResponse, nil, &accessToken)
@@ -436,9 +440,14 @@ func getAccessTokenForDpopPrivateKey(tokenRequest *http.Request, httpClient *htt
436440 if err != nil {
437441 return nil, " " , nil, err
438442 }
439- if tokenResponse.StatusCode >= 400 && strings.Contains(string(respBody), "use_dpop_nonce") {
440- newNonce := tokenResponse.Header.Get(" Dpop-Nonce" )
441- return getAccessTokenForDpopPrivateKey(tokenRequest, httpClient, orgURL, newNonce, maxRetries, maxBackoff)
443+
444+ if tokenResponse.StatusCode >= 300 {
445+ if strings.Contains(string(respBody), " use_dpop_nonce" ) {
446+ newNonce := tokenResponse.Header.Get(" Dpop-Nonce" )
447+ return getAccessTokenForDpopPrivateKey(tokenRequest, httpClient, orgURL, newNonce, maxRetries, maxBackoff)
448+ } else {
449+ return nil, " " , nil, err
450+ }
442451 }
443452 origResp := io.NopCloser(bytes.NewBuffer(respBody))
444453 tokenResponse.Body = origResp
0 commit comments