From aee0cb5673adce4848c7f48fa98eecf4c5150fff Mon Sep 17 00:00:00 2001 From: "Jeevanandam M." Date: Wed, 22 Jan 2025 22:06:48 -0800 Subject: [PATCH] fix: auth scheme and token from client level #959 (#960) --- client.go | 1 - middleware.go | 2 ++ request_test.go | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/client.go b/client.go index 9307ddd..ca0f8af 100644 --- a/client.go +++ b/client.go @@ -451,7 +451,6 @@ func (c *Client) R() *Request { RawPathParams: map[string]string{}, Debug: c.Debug, AuthScheme: c.AuthScheme, - Token: c.Token, client: c, multipartFiles: []*File{}, diff --git a/middleware.go b/middleware.go index 8aac379..d94b8a1 100644 --- a/middleware.go +++ b/middleware.go @@ -301,6 +301,8 @@ func addCredentials(c *Client, r *Request) error { // Build the token Auth header if !IsStringEmpty(r.Token) { r.RawRequest.Header.Set(c.HeaderAuthorizationKey, strings.TrimSpace(r.AuthScheme+" "+r.Token)) + } else if !IsStringEmpty(c.Token) { + r.RawRequest.Header.Set(c.HeaderAuthorizationKey, strings.TrimSpace(r.AuthScheme+" "+c.Token)) } return nil diff --git a/request_test.go b/request_test.go index d7eafbe..c4809ed 100644 --- a/request_test.go +++ b/request_test.go @@ -691,7 +691,7 @@ func TestRequestAuthScheme(t *testing.T) { assertEqual(t, http.StatusOK, resp.StatusCode()) }) - t.Run("empty auth scheme GH954", func(t *testing.T) { + t.Run("empty auth scheme at client level GH954", func(t *testing.T) { tokenValue := "004DDB79-6801-4587-B976-F093E6AC44FF" // set client level @@ -706,6 +706,38 @@ func TestRequestAuthScheme(t *testing.T) { assertEqual(t, tokenValue, resp.Request.Header.Get(hdrAuthorizationKey)) }) + t.Run("empty auth scheme at request level GH954", func(t *testing.T) { + tokenValue := "004DDB79-6801-4587-B976-F093E6AC44FF" + + // set client level + c := dc(). + SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}). + SetAuthToken(tokenValue) + + resp, err := c.R(). + SetAuthScheme(""). + Get(ts.URL + "/profile") + + assertError(t, err) + assertEqual(t, http.StatusOK, resp.StatusCode()) + assertEqual(t, tokenValue, resp.Request.Header.Get(hdrAuthorizationKey)) + }) + + t.Run("only client level auth token GH959", func(t *testing.T) { + tokenValue := "004DDB79-6801-4587-B976-F093E6AC44FF" + + c := dc(). + SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}). + SetAuthToken(tokenValue) + + resp, err := c.R(). + Get(ts.URL + "/profile") + + assertError(t, err) + assertEqual(t, http.StatusOK, resp.StatusCode()) + assertEqual(t, "Bearer "+tokenValue, resp.Request.Header.Get(hdrAuthorizationKey)) + }) + } func TestRequestDigestAuth(t *testing.T) {