我已将我的 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);