From fd602b9ca883ade135a0e9d1475d3b526fd83089 Mon Sep 17 00:00:00 2001 From: Tony West <125916820+twest-bf@users.noreply.github.com> Date: Tue, 15 Apr 2025 13:24:23 -0400 Subject: [PATCH] Fixed a bug that prevented use of header values containing a colon --- cmd/requests.go | 35 +++++++++++++++++++++-------------- cmd/root.go | 2 +- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/cmd/requests.go b/cmd/requests.go index 608cdb6..23e359d 100644 --- a/cmd/requests.go +++ b/cmd/requests.go @@ -92,20 +92,27 @@ func MakeRequest(client http.Client, method, target string, timeout int64, reqDa } for i := range Headers { - h := strings.Split(Headers[i], ":") - if len(h) == 2 { - if h[0] == "User-Agent" { - UserAgent = h[1] - } - if h[0] == "Content-Type" { - contentType = h[1] - } - if h[0] == "Accept" { - accept = h[1] - } - req.Header.Set(h[0], h[1]) - } else { + delimIndex := strings.Index(Headers[i], ":") + if delimIndex == -1 { log.Warnf("Header provided (%s) cannot be used. Headers must be in 'Key: Value' format (this may be caused by a header declared within the definition file).\n", Headers[i]) + continue + } + + key := Headers[i][:delimIndex] + value := Headers[i][delimIndex+1:] + + if len(Headers) == 2 { + if key == "User-Agent" { + UserAgent = value + } + if key == "Content-Type" { + contentType = value + } + if key == "Accept" { + accept = value + } + } else { + req.Header.Set(key, value) } } @@ -114,7 +121,7 @@ func MakeRequest(client http.Client, method, target string, timeout int64, reqDa rand.New(rand.NewSource(time.Now().UnixNano())) UserAgent = userAgents[rand.Intn(len(userAgents))] req.Header.Set("User-Agent", UserAgent) - } else if UserAgent != "Swagger Jacker (github.com/BishopFox/sj)" { + } else { req.Header.Set("User-Agent", UserAgent) } diff --git a/cmd/root.go b/cmd/root.go index fceb006..388a093 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -49,7 +49,7 @@ $ sj convert -u https://petstore.swagger.io/v2/swagger.json -o openapi.json`, log.Error("Command not specified. See the --help flag for usage.") } }, - Version: "1.10.2", + Version: "1.10.3", } func Execute() {