From 9a9222cbc43da54686ebab8484ca5060b3e0aaff Mon Sep 17 00:00:00 2001 From: SMYALTAMASH Date: Wed, 14 Oct 2020 14:43:48 +0530 Subject: [PATCH 1/2] Adding a Requestdebugger_url header if we want to replace the existing header with the env url --- requestHeadersQueryParamsAndBody.go | 128 +++++++++++++++------------- 1 file changed, 69 insertions(+), 59 deletions(-) diff --git a/requestHeadersQueryParamsAndBody.go b/requestHeadersQueryParamsAndBody.go index 5e849e1..03b3b0b 100755 --- a/requestHeadersQueryParamsAndBody.go +++ b/requestHeadersQueryParamsAndBody.go @@ -1,79 +1,89 @@ package main import ( - "fmt" - "log" - "net/http" - "strings" - "os" - "io/ioutil" + "fmt" + "io/ioutil" + "log" + "net/http" + "os" + "strings" + "time" ) func indexHandler(w http.ResponseWriter, r *http.Request) { - var bodyBytes []byte - var final string - var qparams, curlheaders string + var bodyBytes []byte + var final string + var qparams, curlheaders string + t := time.Now() + timeStamp := t.Format(time.RFC1123) + final += "###################################################################\n" + final += "TIMESTAMP: " + timeStamp + "\n" + final += "HTTP Method: " + r.Method + "\n" + final += "REQUEST URL: " + r.URL.Path + "\n" - final += "###################################################################\n" + if r.Body != nil { + bodyBytes, _ = ioutil.ReadAll(r.Body) + } - final += "HTTP Method: "+r.Method+"\n" - final += "REQUEST URL: "+r.URL.Path+"\n" + final += "BODY: " + string(bodyBytes) + "\n" + for key, val := range r.URL.Query() { + final += "Query Param: " + key + " = " + val[0] + "\n" + if qparams != "" { + qparams += "&" + key + "=" + val[0] + } else { + qparams = "?" + key + "=" + val[0] + } + } - if r.Body != nil { - bodyBytes, _ = ioutil.ReadAll(r.Body) - } + qparams += "' \\\n" + for name, values := range r.Header { + for _, value := range values { + final += "HEADER: " + name + " = " + value + "\n" + if curlheaders != "" { + curlheaders += "\n-H '" + name + ": " + value + "' \\" + } else { + curlheaders += "-H '" + name + ": " + value + "' \\" + } + } + } - final += "BODY: "+string(bodyBytes)+"\n" - for key, val := range r.URL.Query() { - final += "Query Param: "+key+" = "+val[0]+"\n" - if qparams != "" { - qparams += "&"+key+"="+val[0] - } else { - qparams = "?"+key+"="+val[0] - } - } + if string(bodyBytes) == "" { + if r.Header.Get("Requestdebugger_url") != "" { + final += "\nCURL COMMAND: \ncurl -X" + r.Method + " " + r.Header.Get("Requestdebugger_url") + "" + r.URL.Path + "" + qparams + "" + strings.TrimSuffix(curlheaders, "\\") + "\n\n" + } else { + final += "\nCURL COMMAND: \ncurl -X" + r.Method + " '{{host}}" + r.URL.Path + "" + qparams + "" + strings.TrimSuffix(curlheaders, "\\") + "\n\n" + } + } else { + if r.Header.Get("Requestdebugger_url") != "" { + final += "\nCURL COMMAND: \ncurl -X" + r.Method + " " + r.Header.Get("Requestdebugger_url") + "" + r.URL.Path + "" + qparams + "" + curlheaders + "--data-urlencode: '" + string(bodyBytes) + "'\n\n" + } else { + final += "\nCURL COMMAND: \ncurl -X" + r.Method + " '{{host}}" + r.URL.Path + "" + qparams + "" + curlheaders + "--data-urlencode: '" + string(bodyBytes) + "'\n\n" + } + } - qparams += "' \\\n" - for name, values := range r.Header { - for _, value := range values { - final += "HEADER: "+name+" = "+value+"\n" - if curlheaders != "" { - curlheaders += "\n-H '"+name+": "+value+"' \\" - } else { - curlheaders += "-H '"+name+": "+value+"' \\" - } - } - } + final += "###################################################################\n" - if string(bodyBytes) == "" { - final += "\nCURL COMMAND: \ncurl -X"+r.Method+" '{{host}}"+r.URL.Path+""+qparams+""+strings.TrimSuffix(curlheaders, "\\")+"\n\n" - } else { - final += "\nCURL COMMAND: \ncurl -X"+r.Method+" '{{host}}"+r.URL.Path+""+qparams+""+curlheaders+"--data-urlencode: '"+string(bodyBytes)+"'\n\n" - } + f, err := os.OpenFile("/tmp/requestHeadersQueryParamsAndBody.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + log.Fatal(err) + } - final += "###################################################################\n" + if _, err := f.Write([]byte(final)); err != nil { + log.Fatal(err) + } - f, err := os.OpenFile("/tmp/requestHeadersQueryParamsAndBody.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) - if err != nil { - log.Fatal(err) - } + if err := f.Close(); err != nil { + log.Fatal(err) + } - if _, err := f.Write([]byte(final)); err != nil { - log.Fatal(err) - } - - if err := f.Close(); err != nil { - log.Fatal(err) - } - - fmt.Fprintf(w, string(bodyBytes)) + fmt.Fprintf(w, string(bodyBytes)) } func main() { - http.HandleFunc("/", indexHandler) + http.HandleFunc("/", indexHandler) - fmt.Printf("Starting server at port 5464\n") - if err := http.ListenAndServe(":5464", nil); err != nil { - log.Fatal(err) - } + fmt.Printf("Starting server at port 5464\n") + if err := http.ListenAndServe(":5464", nil); err != nil { + log.Fatal(err) + } } From bca82e1eb73fd8b439b744fe692dfa529d289da2 Mon Sep 17 00:00:00 2001 From: SMYALTAMASH Date: Fri, 16 Oct 2020 11:15:04 +0530 Subject: [PATCH 2/2] Adding logging to container --- requestHeadersQueryParamsAndBody.go | 42 +++++++++++++++++------------ 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/requestHeadersQueryParamsAndBody.go b/requestHeadersQueryParamsAndBody.go index 03b3b0b..1ad68f7 100755 --- a/requestHeadersQueryParamsAndBody.go +++ b/requestHeadersQueryParamsAndBody.go @@ -2,20 +2,25 @@ package main import ( "fmt" + "github.com/sirupsen/logrus" "io/ioutil" - "log" "net/http" "os" "strings" "time" ) +var log = logrus.New() + func indexHandler(w http.ResponseWriter, r *http.Request) { var bodyBytes []byte var final string var qparams, curlheaders string t := time.Now() timeStamp := t.Format(time.RFC1123) + + defer r.Body.Close() + final += "###################################################################\n" final += "TIMESTAMP: " + timeStamp + "\n" final += "HTTP Method: " + r.Method + "\n" @@ -49,40 +54,43 @@ func indexHandler(w http.ResponseWriter, r *http.Request) { if string(bodyBytes) == "" { if r.Header.Get("Requestdebugger_url") != "" { - final += "\nCURL COMMAND: \ncurl -X" + r.Method + " " + r.Header.Get("Requestdebugger_url") + "" + r.URL.Path + "" + qparams + "" + strings.TrimSuffix(curlheaders, "\\") + "\n\n" + final += "\nCURL COMMAND: \ncurl -X" + r.Method + " '" + r.Header.Get("Requestdebugger_url") + "" + r.URL.Path + "" + qparams + "" + strings.TrimSuffix(curlheaders, "\\") + "\n\n" } else { final += "\nCURL COMMAND: \ncurl -X" + r.Method + " '{{host}}" + r.URL.Path + "" + qparams + "" + strings.TrimSuffix(curlheaders, "\\") + "\n\n" } } else { if r.Header.Get("Requestdebugger_url") != "" { - final += "\nCURL COMMAND: \ncurl -X" + r.Method + " " + r.Header.Get("Requestdebugger_url") + "" + r.URL.Path + "" + qparams + "" + curlheaders + "--data-urlencode: '" + string(bodyBytes) + "'\n\n" + final += "\nCURL COMMAND: \ncurl -X" + r.Method + " '" + r.Header.Get("Requestdebugger_url") + "" + r.URL.Path + "" + qparams + "" + strings.TrimSuffix(curlheaders, "\\") + "-d '" + string(bodyBytes) + "'\n\n" } else { - final += "\nCURL COMMAND: \ncurl -X" + r.Method + " '{{host}}" + r.URL.Path + "" + qparams + "" + curlheaders + "--data-urlencode: '" + string(bodyBytes) + "'\n\n" + final += "\nCURL COMMAND: \ncurl -X" + r.Method + " '{{host}}" + r.URL.Path + "" + qparams + "" + strings.TrimSuffix(curlheaders, "\\") + "-d '" + string(bodyBytes) + "'\n\n" } } final += "###################################################################\n" + log.Info(final) - f, err := os.OpenFile("/tmp/requestHeadersQueryParamsAndBody.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) - if err != nil { - log.Fatal(err) - } + //f, err := os.OpenFile("/tmp/requestHeadersQueryParamsAndBody.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + //if err != nil { + // log.Fatal(err) + //} - if _, err := f.Write([]byte(final)); err != nil { - log.Fatal(err) - } + //if _, err := f.Write([]byte(final)); err != nil { + // log.Fatal(err) + //} - if err := f.Close(); err != nil { - log.Fatal(err) - } + //if err := f.Close(); err != nil { + // log.Fatal(err) + //} - fmt.Fprintf(w, string(bodyBytes)) + fmt.Fprintf(w, string(bodyBytes)+"\n\n") } func main() { + // LOGGING: https://github.com/sirupsen/logrus + log.Out = os.Stdout + // log.SetLevel(log.InfoLevel) http.HandleFunc("/", indexHandler) - - fmt.Printf("Starting server at port 5464\n") + log.Info("Starting server at port 5464\n") if err := http.ListenAndServe(":5464", nil); err != nil { log.Fatal(err) }