diff options
author | Jaime Martinez <jmartinez@gitlab.com> | 2022-04-08 04:03:59 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2022-04-08 04:12:11 +0300 |
commit | 4b70ccd75479dea8cf14a755e3a2ecba7797a449 (patch) | |
tree | bbc0aaa1112156e77829945516e814b118ebad35 /internal/auth/auth.go | |
parent | 4b1afecbb6ae1886bfd3a31f256909ca2770bce4 (diff) |
fix: handle context canceled gracefully for auth and artifacts
Changelog: changed
Diffstat (limited to 'internal/auth/auth.go')
-rw-r--r-- | internal/auth/auth.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/internal/auth/auth.go b/internal/auth/auth.go index 21398e56..681e3199 100644 --- a/internal/auth/auth.go +++ b/internal/auth/auth.go @@ -359,6 +359,10 @@ func (a *Auth) fetchAccessToken(ctx context.Context, code string) (tokenResponse // Request token resp, err := a.apiClient.Do(req) if err != nil { + if errors.Is(err, context.Canceled) { + return token, nil + } + return token, err } @@ -476,6 +480,11 @@ func (a *Auth) checkAuthentication(w http.ResponseWriter, r *http.Request, domai req.Header.Add("Authorization", "Bearer "+session.Values["access_token"].(string)) resp, err := a.apiClient.Do(req) if err != nil { + if errors.Is(err, context.Canceled) { + httperrors.Serve404(w) + return true + } + logRequest(r).WithError(err).Error("Failed to retrieve info with token") errortracking.CaptureErrWithReqAndStackTrace(err, r) // call serve404 handler when auth fails |