如何将凭据传递给Sonar API调用?

时间:2014-03-07 07:33:53

标签: api sonarqube

当我试着打电话时:

https://sonar.mydomain.com/api/resources?resource=com.mydomain.project:MY&metrics=ncloc&format=json

我得到了

{"err_code":401,"err_msg":"Unauthorized"}

如何传递我的凭据?

3 个答案:

答案 0 :(得分:14)

根据最新的documentation说:SonarQube现在支持双向身份验证:

  • 用户令牌

这是推荐的方式。令牌通过HTTP基本身份验证的登录字段发送,这种方式会更安全,没有任何密码。有关如何生成令牌的详细信息,请访问此页面User Token。使用curl发送请求,如下所示:

curl -u THIS_IS_MY_TOKEN: https://sonarqube.com/api/user_tokens/search
# note that the colon after the token is required in curl to set an empty password 
  • HTTP基本访问

登录和密码通过标准HTTP Basic字段发送:

curl -u MY_LOGIN:MY_PASSWORD https://sonarqube.com/api/user_tokens/search

答案 1 :(得分:6)

根据documentation SonarQube使用基本身份验证。尝试:

curl -u admin:SuPeRsEcReT "https://sonar.mydomain.com/api/resources?resource=com.mydomain.project:MY&metrics=ncloc&format=json"

显然,传递这些凭据的机制取决于您调用API的方式。

这也可以在网络浏览器中使用。尝试登录Webui,您的浏览器通常会缓存凭据。

答案 2 :(得分:2)

这是因为身份验证数据不包含在您的api呼叫中。这就是我解决它的方式。

1.首先在您的浏览器中安装一个休息客户端“Postman” 2.打开它并将您的API调用URL放在“正常”选项卡下 3.转到“基本身份验证”选项卡,输入用户名,密码,然后单击刷新标题 4.回到“正常”标签。您将在标题列表中看到名为“授权”的标题 5.现在点击“发送”按钮查看结果 6.如果您使用的是第三方应用程序,请使用邮递员生成的值为您的通话添加“授权”标题。