Compare commits

...

2 Commits

Author SHA1 Message Date
89c18a567f 更新测试用例 2023-03-13 16:16:41 +08:00
liangzy
fbfb1d80a8 v1.0.0 修复其于 http basic auth 的bug 2020-04-28 14:47:58 +08:00
4 changed files with 25 additions and 5 deletions

11
goes.go
View File

@ -34,7 +34,7 @@ func (err *SearchError) Error() string {
// This function is pretty useless for now but might be useful in a near future // This function is pretty useless for now but might be useful in a near future
// if wee need more features like connection pooling or load balancing. // if wee need more features like connection pooling or load balancing.
func NewClient(host string, port string) *Client { func NewClient(host string, port string) *Client {
return &Client{host, port, http.DefaultClient, ""} return &Client{host, port, http.DefaultClient, "", "", ""}
} }
// WithHTTPClient sets the http.Client to be used with the connection. Returns the original client. // WithHTTPClient sets the http.Client to be used with the connection. Returns the original client.
@ -585,6 +585,11 @@ func (c *Client) DoRaw(r Requester) ([]byte, uint64, error) {
return nil, 0, err return nil, 0, err
} }
c.replaceHost(req) c.replaceHost(req)
if c.AuthUsername != "" {
req.SetBasicAuth(c.AuthUsername, c.AuthPassword)
}
return c.doRequest(req) return c.doRequest(req)
} }
@ -596,6 +601,10 @@ func (c *Client) Do(r Requester) (*Response, error) {
} }
c.replaceHost(req) c.replaceHost(req)
if c.AuthUsername != "" {
req.SetBasicAuth(c.AuthUsername, c.AuthPassword)
}
body, statusCode, err := c.doRequest(req) body, statusCode, err := c.doRequest(req)
esResp := &Response{Status: statusCode} esResp := &Response{Status: statusCode}

View File

@ -5,14 +5,13 @@
package goes package goes
import ( import (
. "gopkg.in/check.v1"
"net/http" "net/http"
"net/url" "net/url"
"os" "os"
"strings" "strings"
"testing" "testing"
"time" "time"
. "github.com/go-check/check"
) )
var ( var (
@ -41,7 +40,7 @@ func (s *GoesTestSuite) SetUpTest(c *C) {
func (s *GoesTestSuite) TestNewClient(c *C) { func (s *GoesTestSuite) TestNewClient(c *C) {
conn := NewClient(ESHost, ESPort) conn := NewClient(ESHost, ESPort)
c.Assert(conn, DeepEquals, &Client{ESHost, ESPort, http.DefaultClient, ""}) c.Assert(conn, DeepEquals, &Client{ESHost, ESPort, http.DefaultClient, "", "", ""})
} }
func (s *GoesTestSuite) TestWithHTTPClient(c *C) { func (s *GoesTestSuite) TestWithHTTPClient(c *C) {
@ -54,7 +53,7 @@ func (s *GoesTestSuite) TestWithHTTPClient(c *C) {
} }
conn := NewClient(ESHost, ESPort).WithHTTPClient(cl) conn := NewClient(ESHost, ESPort).WithHTTPClient(cl)
c.Assert(conn, DeepEquals, &Client{ESHost, ESPort, cl, ""}) c.Assert(conn, DeepEquals, &Client{ESHost, ESPort, cl, "", "", ""})
c.Assert(conn.Client.Transport.(*http.Transport).DisableCompression, Equals, true) c.Assert(conn.Client.Transport.(*http.Transport).DisableCompression, Equals, true)
c.Assert(conn.Client.Transport.(*http.Transport).ResponseHeaderTimeout, Equals, 1*time.Second) c.Assert(conn.Client.Transport.(*http.Transport).ResponseHeaderTimeout, Equals, 1*time.Second)
} }

View File

@ -43,6 +43,12 @@ type Request struct {
// Used for the id field when indexing a document // Used for the id field when indexing a document
ID string ID string
// Auth username
AuthUsername string
// Auth password
AuthPassword string
} }
// URL builds a URL for a Request // URL builds a URL for a Request

View File

@ -23,6 +23,12 @@ type Client struct {
// Detected version of ES // Detected version of ES
version string version string
// user name for http basic auth
AuthUsername string `json:"username"`
// pass word for http basic auth
AuthPassword string `json:"password"`
} }
// Response holds an elasticsearch response // Response holds an elasticsearch response