diff --git a/middleware.go b/middleware.go index a10477c9..7382666e 100644 --- a/middleware.go +++ b/middleware.go @@ -81,7 +81,9 @@ func parseRequestHeader(c *Client, r *Request) error { for k := range c.Header { hdr[k] = append(hdr[k], c.Header[k]...) } + for k := range r.Header { + hdr.Del(k) hdr[k] = append(hdr[k], r.Header[k]...) } diff --git a/request_test.go b/request_test.go index 8f5a4f52..a42d2ee8 100644 --- a/request_test.go +++ b/request_test.go @@ -1277,3 +1277,20 @@ func TestRequestQueryStringOrder(t *testing.T) { logResponse(t, resp) } + +func TestRequestOverridesClientAuthorizationHeader(t *testing.T) { + ts := createAuthServer(t) + defer ts.Close() + + c := dc() + c.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}). + SetHeader("Authorization", "some token") + SetHostURL(ts.URL + "/") + + resp, err := c.R(). + SetHeader("Authorization", "Bearer 004DDB79-6801-4587-B976-F093E6AC44FF"). + Get("/profile") + + assertError(t, err) + assertEqual(t, http.StatusOK, resp.StatusCode()) +}