【问题标题】:Authorization in Sonar REST/Web APISonar REST/Web API 中的授权
【发布时间】:2017-05-08 19:39:44
【问题描述】:

我已将我的 Sonar 版本从 5.4迁移6.3.1。 在 5.4 版本中,Sonar 没有提供登录 API。 因此,我们在每个调用中添加了一个 Authorization 标头,其值为 Base64 编码的“用户名”:“密码”。

但在迁移到 6.3.1 后,当前实施的授权失败。

我们尝试将令牌(从 UI 生成)作为 Authorization 标头的值传递,但没有成功。

我们也尝试调用 Sonar 登录 API (api/authentication/login),但没有返回任何响应。

请帮助我们解决此问题。

谢谢。

编辑

以下是调用REST Webservice的代码:

byte[] encodedUsernamePassword = Base64.getEncoder().encode("adminUserName:adminPassword".getBytes());

ResteasyClient client = new ResteasyClientBuilder().build();
    String target = "http://IP:Port/api/issues/search/?statuses=" + "CLOSED" + "&assignees=" + username + "&resolutions=" + "FIXED" + "&createdBefore=" + end_date + "&createdAfter=" + start_date + "&facetMode=debt";

javax.ws.rs.core.Response response = client.target(target).request(MediaType.APPLICATION_JSON).header("Authorization", new String(encodedUsernamePassword)).get();

String strResponse = response.readEntity(String.class);

【问题讨论】:

  • 您应该举例说明您尝试过的方法。建议先使用curl之类的简单工具。确保pass the token as username with empty password
  • 您好,我尝试了以下登录 API,我收到 HTTP 200 作为响应,表明登录成功。
  • 但是在调用登录 API 之后,如果我在没有传递任何授权标头的情况下调用任何其他 API,那么它不会给我任何响应。如果我复制相同的 URI 并从浏览器调用它(登录后),那么它会给我正确的响应数据。

标签: sonarqube sonarqube6.3


【解决方案1】:

第一件事:api/authentication/login 在这里没有帮助。根据Web API documentation,Web API 身份验证是通过 HTTP 基本身份验证进行的。

因此,只需在每个 Web API 请求的标头中传递用户名/密码即可。如果你使用 User Tokens,按照same documentation

这是推荐的方式。好处在页面User Token 中进行了描述。 令牌通过HTTP基本认证的登录字段发送,无需任何密码

【讨论】:

  • 您好,我已经编辑了我的问题以包含我用来调用声纳网络服务的代码。此代码用于调用 Sonar v5.3 REST API,但目前无法正常工作。
  • 如果我按照您的建议使用 Postman 等任何其他工具,那么 API 工作正常,但如果我使用 JAVA REST 客户端则无法正常工作。请帮助解决此问题。谢谢。
【解决方案2】:

上面的代码做了两处改动:

  1. 为 Authorization 标头的值添加了“基本”前缀,如下所示:

    header("授权", new String("Basic YWRtaW46YWRtaW4zMjW="))

  2. 从下面的 URL 中删除了 '?' 之前的多余 '/',如下所示:

    http://IP:Port/api/issues/search/?statuses

【讨论】:

    猜你喜欢
    • 2016-01-17
    • 1970-01-01
    • 2019-01-16
    • 2019-07-05
    • 2014-01-04
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多