org.sonarqube.ws.client.HttpException:错误 401

Posted

技术标签:

【中文标题】org.sonarqube.ws.client.HttpException:错误 401【英文标题】:org.sonarqube.ws.client.HttpException: Error 401 【发布时间】:2020-06-29 16:13:30 【问题描述】:

我正在尝试运行声纳扫描仪并访问质量门结果,但在尝试了论坛上建议的各种选项后有点卡住了。这是我第一次尝试发帖,所以如果我遗漏任何细节,请告诉我。我确实在 sonarqube 服务器 webhooks 控制台中看到了 json 有效负载,但它处于失败状态(红色叉号)。我们的服务器是一个共享的 CBJ 和 SonarQube 服务器,我在这两个服务器上的访问权限都是有限的。非常感谢任何帮助/指导。非常感谢。

========================================

SonarQube 配置

Project_Name > 管理 > Webhook 名称:Webhook_Name 网址:https://CloudBeesJenkins_Server_FQDN/dev-master/sonarqube-webhook/ 秘密:'webhook_secret_text'

========================================

CBJ 配置

CredentialsID:'SonarQubeToken':值:范围:全局凭据(无限制)

========================================

Jenkins 作业 - 流水线脚本

/*此阶段成功*/

stage('SonarQube Analysis') 
        def scannerHome = tool 'Sonar-Prod';
        withSonarQubeEnv('Sonar-Prod') 
        sh """$scannerHome/bin/sonar-scanner -X \
            -Dsonar.projectKey=ProjKey \
            -Dsonar.sources=src \
            -Dsonar.host.url=https://sonarqube_server_fqdn \
            -Dsonar.login=sonar_project_secret_text"""
        
      

/* 在 waitForQualityGate 失败 */

stage("Quality Gate Status Check") 
            timeout(time: 1, unit: 'HOURS')// Just in case something goes wrong, pipeline will be killed after a timeout
           // had previously tried using waitForQualityGate() and waitForQualityGate(webhookSecretId: 'webhook_secret_text' with same result  
           def qg = waitForQualityGate(webhookSecretId: 'webhook_secret_text', credentialsId: 'sonar_project_secret_text') // Reuse taskId previously collected by withSonarQubeEnv
              if (qg.status != 'OK') 
                 error "Pipeline aborted due to quality gate failure: $qg.status"
               
         

======================================

来自 Jenkins 服务器的日志 - 运行 Sonarscanner 和 qualitygate 的作业

SonarQube Scanner 4.2.0.1873
Java 1.8.0_242 Oracle Corporation (64-bit)
Linux 2.6.32-754.27.1.el6.x86_64 amd64
SonarQube server 7.9.1 - Community 7.9.1.27448
[CloudBees Jenkins Enterprise 2.204.3.7-rolling]


09:40:13.671 DEBUG: Upload report
09:40:13.931 DEBUG: POST 200 https://sonarqube_server_fqdn/api/ce/submit?projectKey=ProjKey | time=256ms
09:40:13.935 INFO: Analysis report uploaded in 264ms
09:40:13.938 INFO: ANALYSIS SUCCESSFUL, you can browse https://sonarqube_server_fqdn/dashboard?id=ProjKey
09:40:13.938 INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
09:40:13.938 INFO: More about the report processing at https://sonarqube_server_fqdn/api/ce/task?id=AXDt34Wae-uSoUyAgrS-

[Pipeline] waitForQualityGate
Checking status of SonarQube task 'AXDt34Wae-uSoUyAgrS-' on server 'Sonar-Prod'

org.sonarqube.ws.client.HttpException: Error 401 on https://sonarqube_server_fqdn/api/ce/task?id=AXDt34Wae-uSoUyAgrS-

【问题讨论】:

【参考方案1】:

这是一个防火墙问题。从 Jenkins 到 SonarQube 服务器的通信已打开,但不是相反。这个问题可以关闭。

【讨论】:

这可能不需要关闭,它似乎是一个足够好的候选人在这里提出问题。您应该能够通过单击左侧的复选图标来接受您自己的答案。这会将您的问题标记为“已回答”。如果您没有看到此检查图标,请等待几天,然后它就会出现。

以上是关于org.sonarqube.ws.client.HttpException:错误 401的主要内容,如果未能解决你的问题,请参考以下文章