mirror of
https://github.com/grafana/grafana.git
synced 2025-07-28 08:42:33 +08:00
Re-organize packages and add basic auth test
This commit is contained in:
45
pkg/api/basic_auth_test.go
Normal file
45
pkg/api/basic_auth_test.go
Normal file
@ -0,0 +1,45 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
"gopkg.in/macaron.v1"
|
||||
)
|
||||
|
||||
func TestBasicAuthenticatedRequest(t *testing.T) {
|
||||
expectedUser := "prometheus"
|
||||
expectedPass := "password"
|
||||
|
||||
Convey("Given a valid set of basic auth credentials", t, func() {
|
||||
httpReq, err := http.NewRequest("GET", "http://localhost:3000/metrics", nil)
|
||||
So(err, ShouldBeNil)
|
||||
req := macaron.Request{
|
||||
Request: httpReq,
|
||||
}
|
||||
encodedCreds := encodeBasicAuthCredentials(expectedUser, expectedPass)
|
||||
req.Header.Add("Authorization", fmt.Sprintf("Basic %s", encodedCreds))
|
||||
authenticated := BasicAuthenticatedRequest(req, expectedUser, expectedPass)
|
||||
So(authenticated, ShouldBeTrue)
|
||||
})
|
||||
|
||||
Convey("Given an invalid set of basic auth credentials", t, func() {
|
||||
httpReq, err := http.NewRequest("GET", "http://localhost:3000/metrics", nil)
|
||||
So(err, ShouldBeNil)
|
||||
req := macaron.Request{
|
||||
Request: httpReq,
|
||||
}
|
||||
encodedCreds := encodeBasicAuthCredentials("invaliduser", "invalidpass")
|
||||
req.Header.Add("Authorization", fmt.Sprintf("Basic %s", encodedCreds))
|
||||
authenticated := BasicAuthenticatedRequest(req, expectedUser, expectedPass)
|
||||
So(authenticated, ShouldBeFalse)
|
||||
})
|
||||
}
|
||||
|
||||
func encodeBasicAuthCredentials(user, pass string) string {
|
||||
creds := fmt.Sprintf("%s:%s", user, pass)
|
||||
return base64.StdEncoding.EncodeToString([]byte(creds))
|
||||
}
|
Reference in New Issue
Block a user