Browse Source

remove redundant logs & add unit test

pull/2957/head
guosj 3 years ago
parent
commit
8fd7b24b80
  1. 4
      weed/iamapi/iamapi_management_handlers.go
  2. 22
      weed/iamapi/iamapi_test.go

4
weed/iamapi/iamapi_management_handlers.go

@ -394,19 +394,15 @@ func handleImplicitUsername(r *http.Request, values url.Values) {
if len(s) < 2 { if len(s) < 2 {
return return
} }
glog.V(4).Infof("First strip: %v", s)
s = strings.Split(s[1], ",") s = strings.Split(s[1], ",")
if len(s) < 2 { if len(s) < 2 {
return return
} }
glog.V(4).Infof("Second strip: %v", s)
s = strings.Split(s[0], "/") s = strings.Split(s[0], "/")
if len(s) < 5 { if len(s) < 5 {
return return
} }
glog.V(4).Infof("Third strip: %v", s)
userName := s[2] userName := s[2]
glog.V(4).Infof("UserName: %v", userName)
values.Set("UserName", userName) values.Set("UserName", userName)
} }

22
weed/iamapi/iamapi_test.go

@ -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)
}
}
}
Loading…
Cancel
Save