我已經遷移從5.4我的聲納版本6.3.1 。 在5.4版本中,沒有Sonar提供的登錄API。 因此,我們在每次調用時都添加一個授權標頭,其值爲Base64編碼的「用戶名」:「密碼」。授權聲納REST /網絡API
但是,在遷移到6.3.1後,授權將失敗,並且當前實施。
我們嘗試傳遞令牌(從UI生成)作爲授權標頭的值,但徒勞無益。
我們也嘗試調用Sonar登錄API(api/authentication/login),但它沒有回覆任何響應。
請幫助我們解決此問題。
謝謝。
編輯
以下是調用REST web服務的代碼:
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_這樣的簡單工具。確保[將密碼作爲用戶名使用空密碼傳遞](https://docs.sonarqube.org/display/DEV/Web+API#WebAPI-UserToken)。 –
你好,我嘗試了下面的登錄API,我得到HTTP 200作爲響應,顯示登錄成功。 –
但是在調用登錄API後,如果我調用任何其他API而沒有傳遞任何授權標頭,那麼它不會給我任何迴應。如果我複製相同的URI並從瀏覽器中調用它(登錄後),那麼它會給我適當的響應數據。 –