【问题标题】:SonarQube POST api/permissions/add_user , to give project permissions to many users programatically?SonarQube POST api/permissions/add_user ,以编程方式向许多用户授予项目权限?
【发布时间】:2018-11-08 02:35:42
【问题描述】:

我们在 SonarQube 7.0 中使用 AD/LDAP 进行身份验证... 我们成功实现了 AD/LDAP 身份验证...但是我们想通过程序(php / Python)将项目级别的权限授予不同的用户。

SonarQube 建议使用如下 web api

POST api/permissions/add_user

Params      
 1. login = XXX
 2. permission = user / codereviewer / scan / issueadmin
 3. projectid (optional )
 4. projectkey (optional ) = ABC

SonarQube 文档建议的示例请求

curl -X POST -v -u admin:admin 'http://localhost:9000/api/permissions/add_user?permission=codeviewer&user=XXX&component=ABC'

我们尝试编写 php curl 来处理 post web 请求并获得 json 响应,如下所示:

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://localhost:9000/api/permissions/add_user");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            "login=XXX&permission=user&projectkey=ABC");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec ($ch);

curl_close ($ch);

if ($server_output == "OK") { ... } else { ... }

?>

未反映用户 XXX....的 ABC 项目权限发生任何变化。

谁能指导我这个话题?

我想知道Sonarqube web api post请求的算法... 例如要访问此帖子请求,我们需要在 api/permission 之前为 sonarqube 使用 web api admin login /logout 或者它需要一些 cookie 或令牌...

感谢您在这方面帮助我..

【问题讨论】:

  • 问题通过 curl HTTP 基本身份验证标头添加解决,如下所示: curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additional_headers)); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_USERPWD, "用户名:密码");
  • 你可以参考这个答案:stackoverflow.com/questions/2140419/…

标签: php ldap sonarqube sonarqube7


【解决方案1】:

使用“projectKey”而不是“projectkey”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2019-04-13
    • 1970-01-01
    • 2014-03-15
    • 2019-08-11
    • 1970-01-01
    • 2018-07-22
    相关资源
    最近更新 更多