Consolidate the error handling path in GetCredentials

We'll share even more code here in the future.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
Miloslav Trmač
2021-09-11 22:47:52 +02:00
parent da86a23285
commit 9d56ebb611

View File

@ -37,20 +37,23 @@ func GetCredentials(r *http.Request) (*types.DockerAuthConfig, string, error) {
hdr := r.Header.Values(key.String()) hdr := r.Header.Values(key.String())
return hdr, len(hdr) > 0 return hdr, len(hdr) > 0
} }
var override *types.DockerAuthConfig
var authFile string
var headerName HeaderAuthName
var err error
if hdr, ok := nonemptyHeaderValue(XRegistryConfigHeader); ok { if hdr, ok := nonemptyHeaderValue(XRegistryConfigHeader); ok {
c, f, err := getConfigCredentials(r, hdr) headerName = XRegistryConfigHeader
if err != nil { override, authFile, err = getConfigCredentials(r, hdr)
return nil, "", errors.Wrapf(err, "failed to parse %q header for %s", XRegistryConfigHeader, r.URL.String())
}
return c, f, nil
} else if hdr, ok := nonemptyHeaderValue(XRegistryAuthHeader); ok { } else if hdr, ok := nonemptyHeaderValue(XRegistryAuthHeader); ok {
c, f, err := getAuthCredentials(hdr) headerName = XRegistryAuthHeader
if err != nil { override, authFile, err = getAuthCredentials(hdr)
return nil, "", errors.Wrapf(err, "failed to parse %q header for %s", XRegistryAuthHeader, r.URL.String()) } else {
} return nil, "", nil
return c, f, nil
} }
return nil, "", nil if err != nil {
return nil, "", errors.Wrapf(err, "failed to parse %q header for %s", headerName, r.URL.String())
}
return override, authFile, nil
} }
// getConfigCredentials extracts one or more docker.AuthConfig from a request and its // getConfigCredentials extracts one or more docker.AuthConfig from a request and its