【问题标题】:How to get only projects associated with user with Web Service API如何使用 Web 服务 API 仅获取与用户关联的项目
【发布时间】:2014-12-27 15:22:40
【问题描述】:

我正在使用 SonarQube (ver4.3.2),我正在尝试获取允许 API 调用者用户查看的项目列表。我找到了一个可以获取项目列表的API:

http://nemo.sonarsource.org/api/resources

当我调用此 API 时,尽管 API 调用者用户没有某些项目的浏览权限,但我会获得所有 SonarQube 的项目。 API调用者a user是指通过http基本认证授权的用户。我只想获取 API 调用者用户可以看到的项目列表。

有可能吗?

问候,

迈克尔

【问题讨论】:

    标签: sonarqube


    【解决方案1】:

    当调用“/api/resources”WS 时,您将只获得您被允许查看的项目——这实际上是指用户拥有“浏览”权限的项目。

    如果您在调用此 WS 时获得了 SonarQube 实例的所有项目,这意味着您的权限允许这样做,您应该查看它们。例如,也许每个项目的“浏览”权限上都设置了“任何人”组? (顺便说一下,这是SonarQube的默认配置)。

    【讨论】:

    • 感谢您回答我的问题。我已经确认您的指示,并且我意识到“/api/resources”WS 仅返回项目列表,当客户端的 cookie 不包含登录 cookie(即 JSESSIONID)时,API 调用者用户可以浏览该列表。此外,WS API 在响应标头中返回 Set-Cookie:JSESSIONID。当 API 客户端在 cookie 中有一个经过身份验证的 JSESSIONID 时,SonarQube 的 WS 将这个 cookie 用于用户身份验证,尽管 API 客户端在请求中有 Authorization 标头。因此,一旦使用 Authorization 标头调用 WS,WS 调用的其余部分将由 cookie 进行身份验证。我的理解对吗?
    猜你喜欢
    • 2019-10-04
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多