From 5d715aa98474b1860d49a34840400e3a6ca75726 Mon Sep 17 00:00:00 2001 From: Dejan Mijic Date: Fri, 26 Jan 2018 20:50:31 +0100 Subject: [PATCH] Fix 403 errors handling Signed-off-by: Dejan Mijic --- http/api/transport.go | 2 +- manager/client/client.go | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/http/api/transport.go b/http/api/transport.go index 656db3ed..c9775676 100644 --- a/http/api/transport.go +++ b/http/api/transport.go @@ -130,7 +130,7 @@ func encodeError(_ context.Context, err error, w http.ResponseWriter) { w.WriteHeader(http.StatusBadRequest) case errUnknownType: w.WriteHeader(http.StatusUnsupportedMediaType) - case errUnauthorizedAccess: + case manager.ErrUnauthorizedAccess: w.WriteHeader(http.StatusForbidden) default: w.WriteHeader(http.StatusInternalServerError) diff --git a/manager/client/client.go b/manager/client/client.go index 953038cd..0f27c5fa 100644 --- a/manager/client/client.go +++ b/manager/client/client.go @@ -18,8 +18,14 @@ const ( maxFailureRatio = 0.6 ) -// ErrServiceUnreachable indicates that the service instance is not available. -var ErrServiceUnreachable = errors.New("manager service unavailable") +var ( + // ErrServiceUnreachable indicates that the service instance is not available. + ErrServiceUnreachable = errors.New("manager service unavailable") + + // ErrUnauthorizedAccess indicates missing or invalid credentials provided + // when accessing a protected resource. + ErrUnauthorizedAccess = manager.ErrUnauthorizedAccess +) // ManagerClient provides an access to the manager service authorization // endpoints. @@ -79,7 +85,7 @@ func (mc ManagerClient) makeRequest(url, token string) (string, error) { defer res.Body.Close() if res.StatusCode != http.StatusOK { - return manager.ErrUnauthorizedAccess, nil + return ErrUnauthorizedAccess, nil } return res.Header.Get("X-client-id"), nil