From 2f47a5c2eb13f59c483086950899352899867f38 Mon Sep 17 00:00:00 2001 From: Zhao Xiaojie Date: Tue, 30 Jul 2019 18:46:28 +0800 Subject: [PATCH] Fix curmb cannot use proxy correctly --- app/cmd/crumbIssuer.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/cmd/crumbIssuer.go b/app/cmd/crumbIssuer.go index b260b01..c98f7ba 100644 --- a/app/cmd/crumbIssuer.go +++ b/app/cmd/crumbIssuer.go @@ -2,11 +2,13 @@ package cmd import ( "crypto/tls" + "encoding/base64" "encoding/json" "fmt" "io/ioutil" "log" "net/http" + "net/url" "github.com/spf13/cobra" ) @@ -53,6 +55,18 @@ func getCrumb() (CrumbIssuer, *JenkinsServer) { tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } + + if config.ProxyAuth != "" { + basicAuth := "Basic " + base64.StdEncoding.EncodeToString([]byte(config.ProxyAuth)) + req.Header.Add("Proxy-Authorization", basicAuth) + + tr.ProxyConnectHeader = http.Header{} + tr.ProxyConnectHeader.Add("Proxy-Authorization", basicAuth) + + if proxyURL, err := url.Parse(config.Proxy); err == nil { + tr.Proxy = http.ProxyURL(proxyURL) + } + } client := &http.Client{Transport: tr} if response, err := client.Do(req); err == nil { if data, err := ioutil.ReadAll(response.Body); err == nil { -- GitLab