mirror of
https://github.com/minio/minio.git
synced 2025-11-09 13:39:46 -05:00
refactor: extractSignedHeaders() handles headers removed by Go http server (#4054)
* refactor: extractSignedHeaders() handles headers removed by Go http server. * Cleanup extractSignedHeaders() TestExtractSignedHeaders()
This commit is contained in:
committed by
Harshavardhana
parent
af82d27018
commit
1d99a560e3
@@ -141,8 +141,9 @@ func TestExtractSignedHeaders(t *testing.T) {
|
||||
expectedContentSha256 := "1234abcd"
|
||||
expectedTime := UTCNow().Format(iso8601Format)
|
||||
expectedTransferEncoding := "gzip"
|
||||
expectedExpect := "100-continue"
|
||||
|
||||
r, err := http.NewRequest("GET", "http://localhost", nil)
|
||||
r, err := http.NewRequest("GET", "http://play.minio.io:9000", nil)
|
||||
if err != nil {
|
||||
t.Fatal("Unable to create http.Request :", err)
|
||||
}
|
||||
@@ -150,9 +151,8 @@ func TestExtractSignedHeaders(t *testing.T) {
|
||||
|
||||
// Creating input http header.
|
||||
inputHeader := r.Header
|
||||
inputHeader.Set(signedHeaders[0], expectedHost)
|
||||
inputHeader.Set(signedHeaders[1], expectedContentSha256)
|
||||
inputHeader.Set(signedHeaders[2], expectedTime)
|
||||
inputHeader.Set("x-amz-content-sha256", expectedContentSha256)
|
||||
inputHeader.Set("x-amz-date", expectedTime)
|
||||
// calling the function being tested.
|
||||
extractedSignedHeaders, errCode := extractSignedHeaders(signedHeaders, r)
|
||||
if errCode != ErrNone {
|
||||
@@ -160,24 +160,24 @@ func TestExtractSignedHeaders(t *testing.T) {
|
||||
}
|
||||
|
||||
// "x-amz-content-sha256" header value from the extracted result.
|
||||
extractedContentSha256 := extractedSignedHeaders[signedHeaders[1]]
|
||||
extractedContentSha256 := extractedSignedHeaders.Get("x-amz-content-sha256")
|
||||
// "host" header value from the extracted result.
|
||||
extractedHost := extractedSignedHeaders[signedHeaders[0]]
|
||||
extractedHost := extractedSignedHeaders.Get("host")
|
||||
// "x-amz-date" header from the extracted result.
|
||||
extractedDate := extractedSignedHeaders[signedHeaders[2]]
|
||||
extractedDate := extractedSignedHeaders.Get("x-amz-date")
|
||||
// extracted `expect` header.
|
||||
extractedExpect := extractedSignedHeaders["expect"][0]
|
||||
extractedExpect := extractedSignedHeaders.Get("expect")
|
||||
|
||||
extractedTransferEncoding := extractedSignedHeaders["transfer-encoding"][0]
|
||||
extractedTransferEncoding := extractedSignedHeaders.Get("transfer-encoding")
|
||||
|
||||
if expectedHost != extractedHost[0] {
|
||||
if expectedHost != extractedHost {
|
||||
t.Errorf("host header mismatch: expected `%s`, got `%s`", expectedHost, extractedHost)
|
||||
}
|
||||
// assert the result with the expected value.
|
||||
if expectedContentSha256 != extractedContentSha256[0] {
|
||||
if expectedContentSha256 != extractedContentSha256 {
|
||||
t.Errorf("x-amz-content-sha256 header mismatch: expected `%s`, got `%s`", expectedContentSha256, extractedContentSha256)
|
||||
}
|
||||
if expectedTime != extractedDate[0] {
|
||||
if expectedTime != extractedDate {
|
||||
t.Errorf("x-amz-date header mismatch: expected `%s`, got `%s`", expectedTime, extractedDate)
|
||||
}
|
||||
if extractedTransferEncoding != expectedTransferEncoding {
|
||||
@@ -185,12 +185,12 @@ func TestExtractSignedHeaders(t *testing.T) {
|
||||
}
|
||||
|
||||
// Since the list of signed headers value contained `expect`, the default value of `100-continue` will be added to extracted signed headers.
|
||||
if extractedExpect != "100-continue" {
|
||||
t.Errorf("expect header incorrect value: expected `%s`, got `%s`", "100-continue", extractedExpect)
|
||||
if extractedExpect != expectedExpect {
|
||||
t.Errorf("expect header incorrect value: expected `%s`, got `%s`", expectedExpect, extractedExpect)
|
||||
}
|
||||
|
||||
// case where the headers doesn't contain the one of the signed header in the signed headers list.
|
||||
signedHeaders = append(signedHeaders, " X-Amz-Credential")
|
||||
// case where the headers don't contain the one of the signed header in the signed headers list.
|
||||
signedHeaders = append(signedHeaders, "X-Amz-Credential")
|
||||
// expected to fail with `ErrUnsignedHeaders`.
|
||||
_, errCode = extractSignedHeaders(signedHeaders, r)
|
||||
if errCode != ErrUnsignedHeaders {
|
||||
@@ -198,7 +198,7 @@ func TestExtractSignedHeaders(t *testing.T) {
|
||||
}
|
||||
|
||||
// case where the list of signed headers doesn't contain the host field.
|
||||
signedHeaders = signedHeaders[1:]
|
||||
signedHeaders = signedHeaders[2:5]
|
||||
// expected to fail with `ErrUnsignedHeaders`.
|
||||
_, errCode = extractSignedHeaders(signedHeaders, r)
|
||||
if errCode != ErrUnsignedHeaders {
|
||||
|
||||
Reference in New Issue
Block a user