mirror of
https://github.com/golang/go
synced 2024-11-21 13:54:43 -07:00
http: add Request.SetBasicAuth method
R=golang-dev, dsymonds, rsc CC=golang-dev https://golang.org/cl/4543050
This commit is contained in:
parent
36cec789cd
commit
cd4d0004fa
@ -12,6 +12,7 @@ import (
|
||||
"bufio"
|
||||
"crypto/tls"
|
||||
"container/vector"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
@ -479,6 +480,18 @@ func NewRequest(method, url string, body io.Reader) (*Request, os.Error) {
|
||||
return req, nil
|
||||
}
|
||||
|
||||
// SetBasicAuth sets the request's Authorization header to use HTTP
|
||||
// Basic Authentication with the provided username and password.
|
||||
//
|
||||
// With HTTP Basic Authentication the provided username and password
|
||||
// are not encrypted.
|
||||
func (r *Request) SetBasicAuth(username, password string) {
|
||||
s := username + ":" + password
|
||||
buf := make([]byte, base64.StdEncoding.EncodedLen(len(s)))
|
||||
base64.StdEncoding.Encode(buf, []byte(s))
|
||||
r.Header.Set("Authorization", "Basic "+string(buf))
|
||||
}
|
||||
|
||||
// ReadRequest reads and parses a request from b.
|
||||
func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) {
|
||||
|
||||
|
@ -173,6 +173,14 @@ func TestRedirect(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetBasicAuth(t *testing.T) {
|
||||
r, _ := NewRequest("GET", "http://example.com/", nil)
|
||||
r.SetBasicAuth("Aladdin", "open sesame")
|
||||
if g, e := r.Header.Get("Authorization"), "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="; g != e {
|
||||
t.Errorf("got header %q, want %q", g, e)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMultipartRequest(t *testing.T) {
|
||||
// Test that we can read the values and files of a
|
||||
// multipart request with FormValue and FormFile,
|
||||
|
Loading…
Reference in New Issue
Block a user