@@ -31,7 +31,7 @@ import (
3131 "time"
3232 "unicode/utf8"
3333
34- "github.com/cenkalti/backoff/v4 "
34+ "github.com/cenkalti/backoff/v5 "
3535 "github.com/go-jose/go-jose/v4"
3636 "github.com/go-jose/go-jose/v4/jwt"
3737 "golang.org/x/oauth2"
@@ -40,7 +40,7 @@ import (
4040 awscredentials "github.com/aws/aws-sdk-go/aws/credentials"
4141 { {/withAWSV4Signature} }
4242 "github.com/google/uuid"
43- "github.com/lestrrat-go/jwx/jwk"
43+ "github.com/lestrrat-go/jwx/v3/ jwk"
4444 goCache "github.com/patrickmn/go-cache"
4545)
4646
@@ -450,11 +450,13 @@ func convertJWKToPrivateKey(jwks, encryptionType string) (string, error) {
450450 if err != nil {
451451 return " " , err
452452 }
453- for it := set.Iterate(context.Background()); it.Next(context.Background()); {
454- pair := it.Pair()
455- key := pair.Value.(jwk.Key)
453+ for i := 0; i < set.Len(); i++ {
454+ key, ok := set.Key(i)
455+ if ! ok {
456+ continue
457+ }
456458 var rawkey interface{ } // This is the raw key, like *rsa.PrivateKey or *ecdsa.PrivateKey
457- err := key.Raw( &rawkey)
459+ err := jwk.Export(key, &rawkey)
458460 if err != nil {
459461 return " " , err
460462 }
@@ -545,17 +547,17 @@ func getAccessTokenForPrivateKey(httpClient *http.Client, orgURL, clientAssertio
545547 tokenRequest.Header.Add("Content-Type", "application/x-www-form-urlencoded")
546548 tokenRequest.Header.Add("User-Agent", userAgent)
547549 bOff := &oktaBackoff{
548- ctx: context.TODO (),
550+ ctx: context.Background (),
549551 maxRetries: maxRetries,
550552 backoffDuration: time.Duration(maxBackoff),
551553 }
552554 var tokenResponse *http.Response
553- operation := func() error {
554- tokenResponse , err = httpClient.Do(tokenRequest)
555+ operation := func() (*http.Response, error) {
556+ resp , err : = httpClient.Do(tokenRequest)
555557 bOff.retryCount++
556- return err
558+ return resp, err
557559 }
558- err = backoff.Retry(operation, bOff)
560+ tokenResponse, err = backoff.Retry(context.Background(), operation, backoff.WithBackOff( bOff) )
559561 if err != nil {
560562 return nil, " " , nil, err
561563 }
@@ -608,17 +610,17 @@ func getAccessTokenForDpopPrivateKey(tokenRequest *http.Request, httpClient *htt
608610 tokenRequest.Header.Set("DPoP", dpopJWT)
609611
610612 bOff := &oktaBackoff{
611- ctx: context.TODO (),
613+ ctx: context.Background (),
612614 maxRetries: maxRetries,
613615 backoffDuration: time.Duration(maxBackoff),
614616 }
615617 var tokenResponse *http.Response
616- operation := func() error {
617- tokenResponse , err = httpClient.Do(tokenRequest)
618+ operation := func() (*http.Response, error) {
619+ resp , err : = httpClient.Do(tokenRequest)
618620 bOff.retryCount++
619- return err
621+ return resp, err
620622 }
621- err = backoff.Retry(operation, bOff)
623+ tokenResponse, err = backoff.Retry(context.Background(), operation, backoff.WithBackOff( bOff) )
622624 if err != nil {
623625 return nil, " " , nil, err
624626 }
0 commit comments