registry: fix auth bug

Signed-off-by: Tibor Vass <tibor@docker.com>
This commit is contained in:
Tibor Vass 2015-05-21 16:53:22 -04:00
parent 29dc5eef53
commit a1ade52bb6

View file

@ -80,13 +80,10 @@ func (tr *authTransport) RoundTrip(orig *http.Request) (*http.Response, error) {
return tr.RoundTripper.RoundTrip(req) return tr.RoundTripper.RoundTrip(req)
} }
var askedForToken bool
// Don't override // Don't override
if req.Header.Get("Authorization") == "" { if req.Header.Get("Authorization") == "" {
if req.Header.Get("X-Docker-Token") == "true" { if req.Header.Get("X-Docker-Token") == "true" && len(tr.Username) > 0 {
req.SetBasicAuth(tr.Username, tr.Password) req.SetBasicAuth(tr.Username, tr.Password)
askedForToken = true
} else if len(tr.token) > 0 { } else if len(tr.token) > 0 {
req.Header.Set("Authorization", "Token "+strings.Join(tr.token, ",")) req.Header.Set("Authorization", "Token "+strings.Join(tr.token, ","))
} }
@ -96,7 +93,7 @@ func (tr *authTransport) RoundTrip(orig *http.Request) (*http.Response, error) {
delete(tr.modReq, orig) delete(tr.modReq, orig)
return nil, err return nil, err
} }
if askedForToken && len(resp.Header["X-Docker-Token"]) > 0 { if len(resp.Header["X-Docker-Token"]) > 0 {
tr.token = resp.Header["X-Docker-Token"] tr.token = resp.Header["X-Docker-Token"]
} }
resp.Body = &transport.OnEOFReader{ resp.Body = &transport.OnEOFReader{