【发布时间】:2019-08-13 23:51:07
【问题描述】:
如果是私人项目,我如何访问 SonarQube 质量门 API?我尝试将用户的“用户令牌”作为Authorization Bearer 令牌和基本登录名发送。但是,它没有用。我可以访问它的唯一方法是在用户登录时从浏览器,即存在登录令牌。也可以从 Postman 进行这样的访问。那么我如何获得令牌,这是访问 API 的正确方法吗?
【问题讨论】:
标签: api sonarqube access-token
如果是私人项目,我如何访问 SonarQube 质量门 API?我尝试将用户的“用户令牌”作为Authorization Bearer 令牌和基本登录名发送。但是,它没有用。我可以访问它的唯一方法是在用户登录时从浏览器,即存在登录令牌。也可以从 Postman 进行这样的访问。那么我如何获得令牌,这是访问 API 的正确方法吗?
【问题讨论】:
标签: api sonarqube access-token
令牌确实是访问 API 的正确方式。
1) 您可以通过以下方式获取新令牌 管理 > 安全 > 令牌下的用户(单击列表图标)然后输入名称并单击生成
确保复制令牌,因为关闭后您将无法看到它。
2) Postman 可以选择根据请求生成代码(单击“代码”选项)。如果它通过 Postman 工作,它应该可以在您的代码中使用复制的请求。
3) 作为最后的手段,如果它不起作用,这是我编写的用于发送 Get 请求的 Groovy 函数。
// Returns response of SonarQube web API call with admin auth in text format
def getFromApi(String getURL){
def Res = ("curl -u "+AuthenticationToken+": "+getURL).execute().text
if (Res){
return Res
}
else{
return "error"
}
}
对于发布请求,您只需在身份验证令牌之前添加 -X POST。修改它以满足您的需要。 希望对您有所帮助!
【讨论】:
Invoke-RestMethod cmdlet(不幸的是,SQ 服务器位于 Windows 服务器上)。我无法使用 curl -u 令牌登录,但我能够使用 curl -u user:password 登录。它可以在 Ubuntu 上运行,但是,在 Windows 上,我必须创建凭据对象等。我不完全确定我做了什么,但它现在可以工作了。我仍然更喜欢发送 curl -u - 像 groovy 中的请求。