From d5d88d8cf0e1a44f809bafb6a1fed3ddac5a9ef7 Mon Sep 17 00:00:00 2001 From: kazuminn Date: Wed, 2 May 2018 16:58:29 +0900 Subject: [PATCH] Refactor stride (#637) * refactor * go fmt --- report/stride.go | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/report/stride.go b/report/stride.go index 7afcaf92..07428c28 100644 --- a/report/stride.go +++ b/report/stride.go @@ -2,6 +2,7 @@ package report import ( "bytes" + "fmt" "net/http" "github.com/future-architect/vuls/config" @@ -19,9 +20,12 @@ func (w StrideWriter) Write(rs ...models.ScanResult) (err error) { for _, r := range rs { w := StrideSender{} - jsonStr := `{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"` + r.ServerName + `"}]}]}}` - err = w.sendMessage(conf.HookURL, conf.AuthToken, jsonStr) - if err != nil { + + serverInfo := fmt.Sprintf("%s", r.ServerInfo()) + message := fmt.Sprintf(`{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":" %s "}]}]}}`, + serverInfo, + ) + if err = w.sendMessage(conf.HookURL, conf.AuthToken, message); err != nil { return err } @@ -32,20 +36,26 @@ func (w StrideWriter) Write(rs ...models.ScanResult) (err error) { severity = "?" } - jsonStr = `{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"` + vinfo.CveID + `","marks": [ { "type": "link", "attrs": { "href": "https://nvd.nist.gov/vuln/detail/` + vinfo.CveID + `", "title": "cve" } } ]}]}]}}` - w.sendMessage(conf.HookURL, conf.AuthToken, jsonStr) - if err != nil { - return err - } - jsonStr = `{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"` + strconv.FormatFloat(maxCvss.Value.Score, 'f', 1, 64) + "(" + severity + ")" + `"}]}]}}` - w.sendMessage(conf.HookURL, conf.AuthToken, jsonStr) - if err != nil { + message = fmt.Sprintf(`{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":" %s ","marks": [ { "type": "link", "attrs": { "href": "https://nvd.nist.gov/vuln/detail/%s", "title": "cve" } } ]}]}]}}`, + vinfo.CveID, + vinfo.CveID, + ) + if err = w.sendMessage(conf.HookURL, conf.AuthToken, message); err != nil { return err } - jsonStr = `{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"` + vinfo.Summaries(config.Conf.Lang, r.Family)[0].Value + `"}]}]}}` - w.sendMessage(conf.HookURL, conf.AuthToken, jsonStr) - if err != nil { + message = fmt.Sprintf(`{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":" %s (%s) "}]}]}}`, + strconv.FormatFloat(maxCvss.Value.Score, 'f', 1, 64), + severity, + ) + if err = w.sendMessage(conf.HookURL, conf.AuthToken, message); err != nil { + return err + } + + message = fmt.Sprintf(`{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":" %s "}]}]}}`, + vinfo.Summaries(config.Conf.Lang, r.Family)[0].Value, + ) + if err = w.sendMessage(conf.HookURL, conf.AuthToken, message); err != nil { return err } } @@ -56,13 +66,13 @@ func (w StrideWriter) Write(rs ...models.ScanResult) (err error) { func (w StrideSender) sendMessage(uri, token, jsonStr string) error { reqs, err := http.NewRequest("POST", uri, bytes.NewBuffer([]byte(jsonStr))) + if err != nil { + return err + } reqs.Header.Add("Content-Type", "application/json") reqs.Header.Add("Authorization", "Bearer "+token) - if err != nil { - return err - } client := &http.Client{} resp, err := client.Do(reqs)