Sonarqube 权限不足-Web服务API
我想访问web服务API来检查项目的一些信息,特别是关于代码覆盖率的信息。我尝试使用的请求URL是:Sonarqube 权限不足-Web服务API,sonarqube,Sonarqube,我想访问web服务API来检查项目的一些信息,特别是关于代码覆盖率的信息。我尝试使用的请求URL是: https://<host>/api/coverage/show?key=<project-key> 我是通过cookie中的有效会话登录的,我拥有所有必要的权限(即浏览权限)。那么为什么我不能获取数据呢?如文档所述,此API要求用户对项目具有“浏览”权限。您需要使用基本身份验证将凭据传递到服务器,它应该可以工作 您需要在请求的HTTP头中传递Authorization
https://<host>/api/coverage/show?key=<project-key>
我是通过cookie中的有效会话登录的,我拥有所有必要的权限(即浏览权限)。那么为什么我不能获取数据呢?如文档所述,此API要求用户对项目具有“浏览”权限。您需要使用基本身份验证将凭据传递到服务器,它应该可以工作
您需要在请求的HTTP头中传递Authorization:Basic
。你可以找到很多工具来生成代码,我使用fiddler。在fiddler中,转到工具->文本向导。在对话框中输入username:password
(例如admin:admin
)并选择“ToBase64”。将此代码复制到HTTP头中,然后再次尝试发送请求。我也遇到了同样的问题(SonarQube 4.5),结果发现问题出在项目名称中,即关键参数的第一部分(冒号之前)的值
恰好要使用的名称不是它在仪表板中显示的名称
要查找值的真实名称,请执行以下操作:
http://server/api/coverage/show?key=server-name:path-to-file
其中“文件路径”类似于src/main/java/myFile.java
最后,不要忘记身份验证部分。
使用curl:
curl -u user:password http://server/api/coverage/show?key=server-name:path-to-file
SonarQube返回的错误消息无疑是完全误导性的。打开时您看到了什么https:///dashboard/index?id= 在浏览器中?如果您看到该文件,则应该从WS-Server获取数据。比如在Nemo上,我看到了我项目的仪表板,但API返回“权限不足”看到同样的问题我自己访问
http://localhost:9000/api/ce/task?id=AVE--W-cg-abcdefghijk
在sonar runner Scan的末尾输出。我尝试用fiddler和相应的auth头键,以及Base64编码的用户名和密码,组成这样一个请求(如我所述)。但一切都没有改变。我将检索相同的响应。不幸的是,文档中似乎有一个bug。所需的权限似乎是“查看源代码”,而不是“浏览”。谢谢Simon。凯文,你有服务器的管理员权限吗?您可以尝试使用这些凭据,只是为了确保访问权限不受影响,并且API正在按预期方式工作。另外,你使用的是哪个版本的声纳?我不认为这是用户权限的问题。因为作为管理员,我们也会遇到同样的错误。也许声纳配置中缺少了一些额外的东西?我们正在使用SonarQube 4.5.1(LTS)。顺便说一下:我也有“查看源代码”的权限。
curl -u user:password http://server/api/coverage/show?key=server-name:path-to-file