From 8bb33d78eab8c3c2fcbf4c1b914c06de1b89791d Mon Sep 17 00:00:00 2001 From: "zrfan@leqee.com" Date: Sat, 10 Jul 2021 13:10:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20sonar=E9=92=89=E9=92=89=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6http=20401=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/bsf/sonar/Sonar.java | 17 +++++++++++++++++ src/main/resources/application.properties | 5 ++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bsf/sonar/Sonar.java b/src/main/java/com/bsf/sonar/Sonar.java index 7c57062..5de3f4f 100644 --- a/src/main/java/com/bsf/sonar/Sonar.java +++ b/src/main/java/com/bsf/sonar/Sonar.java @@ -5,7 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.val; +import org.jsoup.Connection; import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; @@ -23,15 +25,30 @@ public class Sonar { private String sonarUrl; @Value("${sonar.parseformat}") private String sonarParseformat; + + @Value("${sonar.login.username}") + private String username; + + @Value("${sonar.login.password}") + private String password; + private String releateApi="$sonarurl/api/measures/search?projectKeys=$projectName&metricKeys=alert_status,bugs,reliability_rating,vulnerabilities,security_rating,code_smells,sqale_rating,duplicated_lines_density,coverage,ncloc,ncloc_language_distribution"; public String run(String projectName) { try { + + Connection.Response res = Jsoup.connect("https://sonarqube.leqee.com/api/authentication/login") + .data("login", username, "password", password) + .method(Connection.Method.POST) + .execute(); + String jwtSession = res.cookie("JWT-SESSION"); + val doc = Jsoup.connect(releateApi.replace("$sonarurl", sonarUrl).replace("$projectName", projectName)) .header("Accept", "*/*") .header("Accept-Encoding", "gzip, deflate") .header("Accept-Language","zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3") .header("Content-Type", "application/json;charset=UTF-8") + .cookie("JWT-SESSION",jwtSession) // 需要设置 jwt-session 不然后面接口会响应 401 .ignoreContentType(true); val html = doc.get().body().html(); JsonResult json = JSON.parseObject(html, JsonResult.class); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5c95214..2abdec9 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -6,4 +6,7 @@ spring.http.encoding.force=true spring.application.name=dingding-sonar sonar.url=http://10.252.193.11:9000 -sonar.parseformat=bug:{$bug},\u6F0F\u6D1E:{$leak},\u574F\u5473\u9053:{$code_smell},\u8986\u76D6\u7387:{$coverage},\u91CD\u590D:{$density},\u72B6\u6001:{$status} \ No newline at end of file +sonar.parseformat=bug:{$bug},\u6F0F\u6D1E:{$leak},\u574F\u5473\u9053:{$code_smell},\u8986\u76D6\u7387:{$coverage},\u91CD\u590D:{$density},\u72B6\u6001:{$status} + +sonar.login.username=admin +sonar.login.password=admin \ No newline at end of file -- Gitee