diff options
author | Miloslav Trmač <mitr@redhat.com> | 2021-09-11 22:47:52 +0200 |
---|---|---|
committer | Miloslav Trmač <mitr@redhat.com> | 2021-12-10 18:16:21 +0100 |
commit | 9d56ebb611e008f5ad09048499331f7aac1ceed3 (patch) | |
tree | 597f662511ceb0a3dd16a52b4a5c1b6f47c12b63 /pkg/auth/auth.go | |
parent | da86a232851162b584a143efa3c4f3032a480413 (diff) | |
download | podman-9d56ebb611e008f5ad09048499331f7aac1ceed3.tar.gz podman-9d56ebb611e008f5ad09048499331f7aac1ceed3.tar.bz2 podman-9d56ebb611e008f5ad09048499331f7aac1ceed3.zip |
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>
Diffstat (limited to 'pkg/auth/auth.go')
-rw-r--r-- | pkg/auth/auth.go | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/pkg/auth/auth.go b/pkg/auth/auth.go index a95ae4764..a4d7896a8 100644 --- a/pkg/auth/auth.go +++ b/pkg/auth/auth.go @@ -37,20 +37,23 @@ func GetCredentials(r *http.Request) (*types.DockerAuthConfig, string, error) { hdr := r.Header.Values(key.String()) return hdr, len(hdr) > 0 } + var override *types.DockerAuthConfig + var authFile string + var headerName HeaderAuthName + var err error if hdr, ok := nonemptyHeaderValue(XRegistryConfigHeader); ok { - c, f, err := getConfigCredentials(r, hdr) - if err != nil { - return nil, "", errors.Wrapf(err, "failed to parse %q header for %s", XRegistryConfigHeader, r.URL.String()) - } - return c, f, nil + headerName = XRegistryConfigHeader + override, authFile, err = getConfigCredentials(r, hdr) } else if hdr, ok := nonemptyHeaderValue(XRegistryAuthHeader); ok { - c, f, err := getAuthCredentials(hdr) - if err != nil { - return nil, "", errors.Wrapf(err, "failed to parse %q header for %s", XRegistryAuthHeader, r.URL.String()) - } - return c, f, nil + headerName = XRegistryAuthHeader + override, authFile, err = getAuthCredentials(hdr) + } else { + return nil, "", nil + } + if err != nil { + return nil, "", errors.Wrapf(err, "failed to parse %q header for %s", headerName, r.URL.String()) } - return nil, "", nil + return override, authFile, nil } // getConfigCredentials extracts one or more docker.AuthConfig from a request and its |