Refactor stride (#637)

* refactor

* go fmt
This commit is contained in:
kazuminn
2018-05-02 16:58:29 +09:00
committed by Kota Kanbe
parent cf9d26068c
commit d5d88d8cf0

View File

@@ -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)