diff --git a/cve-vulner-manager/controllers/cve.go b/cve-vulner-manager/controllers/cve.go index ba569822409c6d837151205e0e7eb8438aa4ff3f..4fdea4ad5ad84ce8aa6972ceddb12b4776d00557 100644 --- a/cve-vulner-manager/controllers/cve.go +++ b/cve-vulner-manager/controllers/cve.go @@ -439,7 +439,7 @@ func (u *UpdateAffectedBranchController) Post() { continue } - _, err = taskhandler.UpdateIssueToGit("", "", vuln.PackName, vuln, issue) + _, err = taskhandler.UpdateIssueToGit("", "", vuln.PackName, vuln, issue, 1) if err != nil { updateAffectedLog("update gitee", err) continue diff --git a/cve-vulner-manager/controllers/hook.go b/cve-vulner-manager/controllers/hook.go index c5f131fabdca35611b365e9faadd729a8d89503c..218ab5bd915142b26bd6c12774cf3224f0ec1e24 100644 --- a/cve-vulner-manager/controllers/hook.go +++ b/cve-vulner-manager/controllers/hook.go @@ -78,6 +78,7 @@ const ( CIssueType = "CVE和安全问题" HasCreateIssue = "@%v %v 在当前软件仓下已经创建过对应的[ISSUE](%s), 请不要重复创建" CreateIssueReject = "@%v %v 在当前软件仓下已经创建过对应的[ISSUE](%s), 请不要重复创建, 当前ISSUE将被工具设置为已拒绝." + createIssueRepeat = "/reason 重复创建" CommentCheckVersion = "@%v 请确认分支: %v 受影响/不受影响." // rejected or upend CommentRejectedState = `@%v 当前issue状态为: %v,请先修改issue状态, 否则评论无法被识别.` @@ -2202,6 +2203,9 @@ func AddGitIssue(issueHook *models.IssuePayload, desc, product string) error { if organizationID == 1 { taskhandler.AddCommentToIssue(fmt.Sprintf(CreateIssueReject, issueHook.Issue.User.UserName, item.CveNumber, issueNum), issueNumber, owner, repoPath, accessToken) + + taskhandler.AddCommentToIssue(createIssueRepeat, issueNumber, owner, repoPath, accessToken) + authToken := tokenMap[organizationID] _ = setReject(authToken.EnId, issueHook.Issue.Id, authToken.AccessToken) } else { diff --git a/cve-vulner-manager/routers/middleware.go b/cve-vulner-manager/routers/middleware.go new file mode 100644 index 0000000000000000000000000000000000000000..cafb6b3e4b99f1282d825459115cab17998d8ef2 --- /dev/null +++ b/cve-vulner-manager/routers/middleware.go @@ -0,0 +1,15 @@ +package routers + +import ( + "github.com/astaxie/beego" + "github.com/astaxie/beego/context" +) + +func initMiddleware() { + beego.InsertFilter("/v1/gauss/*", beego.BeforeRouter, addHeader) + +} + +func addHeader(ctx *context.Context) { + ctx.ResponseWriter.Header().Add("Strict-Transport-Security", "max-age=31536000; includeSubDomains") +} diff --git a/cve-vulner-manager/routers/new_router.go b/cve-vulner-manager/routers/new_router.go index 0861a958005ec9e28676c861751b31ee593cdcf4..ff6cace0308f176c0371e1c7299cbb43eccf703a 100644 --- a/cve-vulner-manager/routers/new_router.go +++ b/cve-vulner-manager/routers/new_router.go @@ -24,10 +24,11 @@ import ( func Init() { initComment() initController() - InitNewRouter() + initNewRouter() + initMiddleware() } -func InitNewRouter() { +func initNewRouter() { writers := []io.Writer{os.Stdout} file, err := os.OpenFile("./logrus.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err == nil { diff --git a/cve-vulner-manager/taskhandler/createissue.go b/cve-vulner-manager/taskhandler/createissue.go index 79435e7f775ca653d13a3afaef51567ecb5acb71..c6b89f4d07c421f1335c5e4e76960a1b8bd04177 100644 --- a/cve-vulner-manager/taskhandler/createissue.go +++ b/cve-vulner-manager/taskhandler/createissue.go @@ -478,14 +478,17 @@ func CreateIssueToGit(accessToken, owner, path, assignee string, } func UpdateIssueToGit(accessToken, owner, path string, - cve models.VulnCenter, its models.IssueTemplate) (string, error) { + cve models.VulnCenter, its models.IssueTemplate, ignoreStatus ...int) (string, error) { logs.Info("UpdateIssueToGit, Update template request parameters: cve: ", cve, ",its: ", its, ", owner: ", owner, ",path: ", path) - if its.Status == 4 || its.Status == 5 { - logs.Error("UpdateIssueToGit, "+ - "The current issue has been suspended/rejected and will not be processed, its: ", its.IssueNum) - models.UpdateIssueStatus(cve, 2) - return "", errors.New("The current issue has been suspended/rejected and will not be processed") + + if len(ignoreStatus) == 0 { + if its.Status == 4 || its.Status == 5 { + logs.Error("UpdateIssueToGit, "+ + "The current issue has been suspended/rejected and will not be processed, its: ", its.IssueNum) + models.UpdateIssueStatus(cve, 2) + return "", errors.New("The current issue has been suspended/rejected and will not be processed") + } } owner, accessToken = common.GetOwnerAndToken(cve.CveNum, cve.OrganizationID) if cve.OrganizationID == 2 {