From 2d18f82c9f0f63209d50366289f460a9690aaef3 Mon Sep 17 00:00:00 2001 From: Todd Date: Mon, 11 Dec 2023 08:53:46 -0800 Subject: [PATCH] Rename refresh token errors to list error (#4138) --- api/apierror.go | 10 +++++----- internal/clientcache/internal/cache/refresh_test.go | 2 +- .../clientcache/internal/cache/repository_sessions.go | 4 ++-- .../clientcache/internal/cache/repository_targets.go | 4 ++-- internal/daemon/controller/handlers/errors.go | 2 +- internal/daemon/controller/handlers/errors_test.go | 8 ++++---- internal/errors/code.go | 2 +- internal/errors/code_test.go | 6 +++--- internal/errors/info.go | 4 ++-- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/api/apierror.go b/api/apierror.go index 073c163663..885eb2ec1a 100644 --- a/api/apierror.go +++ b/api/apierror.go @@ -11,11 +11,11 @@ import ( ) var ( - ErrNotFound = &Error{Kind: codes.NotFound.String(), response: &Response{resp: &http.Response{StatusCode: http.StatusNotFound}}} - ErrInvalidArgument = &Error{Kind: codes.InvalidArgument.String(), response: &Response{resp: &http.Response{StatusCode: http.StatusBadRequest}}} - ErrPermissionDenied = &Error{Kind: codes.PermissionDenied.String(), response: &Response{resp: &http.Response{StatusCode: http.StatusForbidden}}} - ErrUnauthorized = &Error{Kind: codes.Unauthenticated.String(), response: &Response{resp: &http.Response{StatusCode: http.StatusUnauthorized}}} - ErrInvalidRefreshToken = &Error{Kind: "invalid refresh token", response: &Response{resp: &http.Response{StatusCode: http.StatusBadRequest}}} + ErrNotFound = &Error{Kind: codes.NotFound.String(), response: &Response{resp: &http.Response{StatusCode: http.StatusNotFound}}} + ErrInvalidArgument = &Error{Kind: codes.InvalidArgument.String(), response: &Response{resp: &http.Response{StatusCode: http.StatusBadRequest}}} + ErrPermissionDenied = &Error{Kind: codes.PermissionDenied.String(), response: &Response{resp: &http.Response{StatusCode: http.StatusForbidden}}} + ErrUnauthorized = &Error{Kind: codes.Unauthenticated.String(), response: &Response{resp: &http.Response{StatusCode: http.StatusUnauthorized}}} + ErrInvalidListToken = &Error{Kind: "invalid list token", response: &Response{resp: &http.Response{StatusCode: http.StatusBadRequest}}} ) // AsServerError returns an api *Error from the provided error. If the provided error diff --git a/internal/clientcache/internal/cache/refresh_test.go b/internal/clientcache/internal/cache/refresh_test.go index 4539e5eb2a..c9af8da4e7 100644 --- a/internal/clientcache/internal/cache/refresh_test.go +++ b/internal/clientcache/internal/cache/refresh_test.go @@ -66,7 +66,7 @@ func testFullFetchRetrievalFunc[T any](t *testing.T, ret []T) func(context.Conte func testErroringForRefreshTokenRetrievalFunc[T any](t *testing.T, ret []T) func(context.Context, string, string, RefreshTokenValue) ([]T, []string, RefreshTokenValue, error) { return func(ctx context.Context, s1, s2 string, refToken RefreshTokenValue) ([]T, []string, RefreshTokenValue, error) { if refToken != "" { - return nil, nil, "", api.ErrInvalidRefreshToken + return nil, nil, "", api.ErrInvalidListToken } return ret, nil, "1", nil } diff --git a/internal/clientcache/internal/cache/repository_sessions.go b/internal/clientcache/internal/cache/repository_sessions.go index 2583b8ae1c..6f0337ed9a 100644 --- a/internal/clientcache/internal/cache/repository_sessions.go +++ b/internal/clientcache/internal/cache/repository_sessions.go @@ -35,7 +35,7 @@ func defaultSessionFunc(ctx context.Context, addr, authTok string, refreshTok Re sClient := sessions.NewClient(client) l, err := sClient.List(ctx, "global", sessions.WithIncludeTerminated(true), sessions.WithRecursive(true), sessions.WithListToken(string(refreshTok))) if err != nil { - if api.ErrInvalidRefreshToken.Is(err) { + if api.ErrInvalidListToken.Is(err) { return nil, nil, "", err } return nil, nil, "", errors.Wrap(ctx, err, op) @@ -82,7 +82,7 @@ func (r *Repository) refreshSessions(ctx context.Context, u *user, tokens map[Au var retErr error for at, t := range tokens { resp, removedIds, newRefreshToken, err = opts.withSessionRetrievalFunc(ctx, u.Address, t, oldRefreshTokenVal) - if api.ErrInvalidRefreshToken.Is(err) { + if api.ErrInvalidListToken.Is(err) { if err := r.deleteRefreshToken(ctx, u, resourceType); err != nil { return errors.Wrap(ctx, err, op) } diff --git a/internal/clientcache/internal/cache/repository_targets.go b/internal/clientcache/internal/cache/repository_targets.go index d408ce069c..c4d34b32fa 100644 --- a/internal/clientcache/internal/cache/repository_targets.go +++ b/internal/clientcache/internal/cache/repository_targets.go @@ -35,7 +35,7 @@ func defaultTargetFunc(ctx context.Context, addr, authTok string, refreshTok Ref tarClient := targets.NewClient(client) l, err := tarClient.List(ctx, "global", targets.WithRecursive(true), targets.WithListToken(string(refreshTok))) if err != nil { - if api.ErrInvalidRefreshToken.Is(err) { + if api.ErrInvalidListToken.Is(err) { return nil, nil, "", err } return nil, nil, "", errors.Wrap(ctx, err, op) @@ -81,7 +81,7 @@ func (r *Repository) refreshTargets(ctx context.Context, u *user, tokens map[Aut var retErr error for at, t := range tokens { resp, removedIds, newRefreshTokenVal, err = opts.withTargetRetrievalFunc(ctx, u.Address, t, oldRefreshTokenVal) - if api.ErrInvalidRefreshToken.Is(err) { + if api.ErrInvalidListToken.Is(err) { if err := r.deleteRefreshToken(ctx, u, resourceType); err != nil { return errors.Wrap(ctx, err, op) } diff --git a/internal/daemon/controller/handlers/errors.go b/internal/daemon/controller/handlers/errors.go index 6316723296..ec13358c05 100644 --- a/internal/daemon/controller/handlers/errors.go +++ b/internal/daemon/controller/handlers/errors.go @@ -218,7 +218,7 @@ func backendErrorToApiError(inErr error) *ApiError { return NotFoundErrorf(genericNotFoundMsg) case errors.Match(errors.T(errors.AccountAlreadyAssociated), inErr): return InvalidArgumentErrorf(inErr.Error(), nil) - case errors.Match(errors.T(errors.InvalidRefreshToken), inErr): + case errors.Match(errors.T(errors.InvalidListToken), inErr): return invalidRefreshTokenError(inErr) case errors.Match(errors.T(errors.InvalidFieldMask), inErr), errors.Match(errors.T(errors.EmptyFieldMask), inErr): return InvalidArgumentErrorf("Error in provided request", map[string]string{"update_mask": "Invalid update mask provided."}) diff --git a/internal/daemon/controller/handlers/errors_test.go b/internal/daemon/controller/handlers/errors_test.go index d332555169..4614e9ba20 100644 --- a/internal/daemon/controller/handlers/errors_test.go +++ b/internal/daemon/controller/handlers/errors_test.go @@ -220,14 +220,14 @@ func TestApiErrorHandler(t *testing.T) { }, }, { - name: "Invalid refresh token error", - err: errors.New(ctx, errors.InvalidRefreshToken, errors.Op("test.op"), "this is a test invalid refresh token error"), + name: "Invalid list token error", + err: errors.New(ctx, errors.InvalidListToken, errors.Op("test.op"), "this is a test invalid list token error"), expected: ApiError{ Status: http.StatusBadRequest, Inner: &pb.Error{ - Kind: "invalid refresh token", + Kind: "invalid list token", Op: "test.op", - Message: "this is a test invalid refresh token error", + Message: "this is a test invalid list token error", }, }, }, diff --git a/internal/errors/code.go b/internal/errors/code.go index 088eda5e95..71bf662061 100644 --- a/internal/errors/code.go +++ b/internal/errors/code.go @@ -67,7 +67,7 @@ const ( Closed = 134 // Closed represents an error when an operation cannot be completed because the thing being operated on is closed ChecksumMismatch = 135 // ChecksumMismatch represents an error when a checksum is mismatched - InvalidRefreshToken Code = 136 // InvalidRefreshToken represents an error where the provided refresh token is invalid + InvalidListToken Code = 136 // InvalidListToken represents an error where the provided list token is invalid AuthAttemptExpired Code = 198 // AuthAttemptExpired represents an expired authentication attempt AuthMethodInactive Code = 199 // AuthMethodInactive represents an error that means the auth method is not active. diff --git a/internal/errors/code_test.go b/internal/errors/code_test.go index 0153170dbe..51b1bd80d0 100644 --- a/internal/errors/code_test.go +++ b/internal/errors/code_test.go @@ -416,9 +416,9 @@ func TestCode_Both_String_Info(t *testing.T) { want: InvalidConfiguration, }, { - name: "InvalidRefreshToken", - c: InvalidRefreshToken, - want: InvalidRefreshToken, + name: "InvalidListToken", + c: InvalidListToken, + want: InvalidListToken, }, } for _, tt := range tests { diff --git a/internal/errors/info.go b/internal/errors/info.go index e62c3bbdfc..8e864af5f0 100644 --- a/internal/errors/info.go +++ b/internal/errors/info.go @@ -347,8 +347,8 @@ var errorCodeInfo = map[Code]Info{ Message: "invalid configuration", Kind: Configuration, }, - InvalidRefreshToken: { - Message: "invalid refresh token", + InvalidListToken: { + Message: "invalid list token", Kind: Parameter, }, }