From 53a27588802b6a6ee41144bf6f5dbceddc61b25a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D1=8C=D0=B3=D0=B0=20=D0=9C=D0=B0=D1=88=D0=BA?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0?= Date: Tue, 19 Sep 2023 19:01:03 +0300 Subject: [PATCH] set body --- transformer.go | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/transformer.go b/transformer.go index 7460b47..a1c5043 100644 --- a/transformer.go +++ b/transformer.go @@ -1,11 +1,9 @@ package traefikbodywrite import ( - "bytes" "context" "fmt" - "io" - "io/ioutil" + "log" "net/http" "net/url" "os" @@ -52,38 +50,32 @@ func (a *transformer) log(format string) { func (a *transformer) ServeHTTP(rw http.ResponseWriter, req *http.Request) { data := url.Values{} - data.Set("client_id", a.config.ClientId) - data.Set("client_secret", a.config.ClientSecret) - data.Set("grant_type", a.config.GrantType) + data.Add("client_id", a.config.ClientId) + data.Add("client_secret", a.config.ClientSecret) + data.Add("grant_type", a.config.GrantType) usernameHeader := req.Header.Values("username")[0] if usernameHeader == "" { http.Error(rw, "username header missing", http.StatusInternalServerError) } - data.Set("username", usernameHeader) + data.Add("username", usernameHeader) req.Header.Del("username") passwordHeader := req.Header.Values("password")[0] if passwordHeader == "" { http.Error(rw, "password header missing", http.StatusInternalServerError) } - data.Set("password", passwordHeader) + data.Add("password", passwordHeader) req.Header.Del("password") - var body io.Reader - body = bytes.NewBufferString(data.Encode()) + log.Print(data) - rc, ok := body.(io.ReadCloser) - if !ok && body != nil { - rc = ioutil.NopCloser(body) - } - - req.Body = rc + req.URL.RawQuery = data.Encode() - req.Header.Add("Content-Type", "application/x-www-form-urlencoded") - req.Header.Add("Content-Length", strconv.Itoa(len(data.Encode()))) + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + req.Header.Set("Content-Length", strconv.Itoa(len(data.Encode()))) - //req.Body = io.NopCloser(strings.NewReader(string(jsonBody))) + //req.Body = io.NopCloser(strings.NewReader(data)) //req.ContentLength = int64(len(jsonBody)) a.next.ServeHTTP(rw, req)