From 8e2608eca8960819791eb4d89b3028e26a29498d Mon Sep 17 00:00:00 2001 From: Ivan Krasin Date: Tue, 15 Dec 2009 16:27:45 -0800 Subject: [PATCH] Add basic http authentication support. Fixes #407. R=rsc, ajstarks CC=ushakov https://golang.org/cl/176076 --- src/pkg/http/client.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/pkg/http/client.go b/src/pkg/http/client.go index aa3d3be6dc..af11a4b745 100644 --- a/src/pkg/http/client.go +++ b/src/pkg/http/client.go @@ -8,6 +8,7 @@ package http import ( "bufio" + "encoding/base64" "fmt" "io" "net" @@ -118,6 +119,16 @@ func send(req *Request) (resp *Response, err os.Error) { if !hasPort(addr) { addr += ":http" } + info := req.URL.Userinfo + if len(info) > 0 { + enc := base64.URLEncoding + encoded := make([]byte, enc.EncodedLen(len(info))) + enc.Encode(encoded, strings.Bytes(info)) + if req.Header == nil { + req.Header = make(map[string]string) + } + req.Header["Authorization"] = "Basic " + string(encoded) + } conn, err := net.Dial("tcp", "", addr) if err != nil { return nil, err -- 2.50.0