权限不足 - Web服务API

时间:2015-06-17 12:27:07

标签: sonarqube

我想访问Web服务API以检查项目的某些信息,尤其是代码覆盖率。我尝试使用的请求网址是:

https://<host>/api/coverage/show?key=<project-key>

问题是我只会收到以下回复:

{
    errors: [
        {
            msg: "Insufficient privileges"
        }
    ]
}

我是通过cookie中的有效会话登录的,我拥有所有必要的权限(即浏览权限)。那么为什么我不能获得数据?

2 个答案:

答案 0 :(得分:0)

根据文档here,此API要求用户进行“浏览”。对项目的许可。您需要使用Basic Auth将凭据传递给服务器,它应该可以工作。

您需要在请求的HTTP标头中传递Authorization: Basic <base64encoded-username-password>。您可以找到许多工具来生成代码,我使用fiddler。在提琴手中,转到工具 - &gt;文字向导。在对话框中输入username:password(例如admin:admin)并选择“ToBase64&#39;”。将此代码复制到HTTP标头中,然后尝试再次发送请求。

答案 1 :(得分:0)

我遇到了同样的问题(SonarQube 4.5),结果证明问题出在项目名称中,即参数的第一部分的值(在冒号之前) )。

使用的名称不是它在仪表板中显示的名称。

要找出值的真实姓名:

  1. 在SonarQube中浏览到您想要覆盖的文件
  2. 将鼠标悬停在左上角项目的标题上。出现的链接应该是这样的:

    http://server/dashboard/index/project-name

  3. 使用&#34;项目名称&#34;即使它已经有冒号了。

    http://server/api/coverage/show?key=server-name:path-to-file
    

    其中&#34;路径到文件&#34;类似于src / main / java / myFile.java

    最后不要忘记身份验证部分。 使用curl:

    curl -u user:password http://server/api/coverage/show?key=server-name:path-to-file
    

    SonarQube返回的错误信息肯定是误导性的。