|
@ -4,6 +4,7 @@ import ( |
|
|
"encoding/xml" |
|
|
"encoding/xml" |
|
|
"net/http" |
|
|
"net/http" |
|
|
"net/http/httptest" |
|
|
"net/http/httptest" |
|
|
|
|
|
"net/url" |
|
|
"testing" |
|
|
"testing" |
|
|
|
|
|
|
|
|
"github.com/aws/aws-sdk-go/aws" |
|
|
"github.com/aws/aws-sdk-go/aws" |
|
@ -192,3 +193,24 @@ func executeRequest(req *http.Request, v interface{}) (*httptest.ResponseRecorde |
|
|
apiRouter.ServeHTTP(rr, req) |
|
|
apiRouter.ServeHTTP(rr, req) |
|
|
return rr, xml.Unmarshal(rr.Body.Bytes(), &v) |
|
|
return rr, xml.Unmarshal(rr.Body.Bytes(), &v) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func TestHandleImplicitUsername(t *testing.T) { |
|
|
|
|
|
var tests = []struct { |
|
|
|
|
|
r *http.Request |
|
|
|
|
|
values url.Values |
|
|
|
|
|
userName string |
|
|
|
|
|
}{ |
|
|
|
|
|
{&http.Request{}, url.Values{}, ""}, |
|
|
|
|
|
{&http.Request{Header: http.Header{"Authorization": []string{"AWS4-HMAC-SHA256 Credential=197FSAQ7HHTA48X64O3A/20220420/test1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=6757dc6b3d7534d67e17842760310e99ee695408497f6edc4fdb84770c252dc8"}}}, url.Values{}, "test1"}, |
|
|
|
|
|
{&http.Request{Header: http.Header{"Authorization": []string{"AWS4-HMAC-SHA256 =197FSAQ7HHTA48X64O3A/20220420/test1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=6757dc6b3d7534d67e17842760310e99ee695408497f6edc4fdb84770c252dc8"}}}, url.Values{}, ""}, |
|
|
|
|
|
{&http.Request{Header: http.Header{"Authorization": []string{"AWS4-HMAC-SHA256 Credential=197FSAQ7HHTA48X64O3A/20220420/test1/iam/aws4_request SignedHeaders=content-type;host;x-amz-date Signature=6757dc6b3d7534d67e17842760310e99ee695408497f6edc4fdb84770c252dc8"}}}, url.Values{}, ""}, |
|
|
|
|
|
{&http.Request{Header: http.Header{"Authorization": []string{"AWS4-HMAC-SHA256 Credential=197FSAQ7HHTA48X64O3A/20220420/test1/iam, SignedHeaders=content-type;host;x-amz-date, Signature=6757dc6b3d7534d67e17842760310e99ee695408497f6edc4fdb84770c252dc8"}}}, url.Values{}, ""}, |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for i, test := range tests { |
|
|
|
|
|
handleImplicitUsername(test.r, test.values) |
|
|
|
|
|
if un := test.values.Get("UserName"); un != test.userName { |
|
|
|
|
|
t.Errorf("No.%d: Got: %v, Expected: %v", i, un, test.userName) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |