2017-05-29 147 views
0

我已經在端口8081和設置管理員用戶爲「管理員」REST API認證失敗 - 詹金斯

我提示以下錯誤:試圖調用其他API來獲取列表中的用戶名和密碼,安裝Jeninkins工作中使用Java客戶端

錯誤手動創建的:「GET http://localhost:8081/api/xml返回的401未授權的響應狀態」

你能幫助認證用戶來解決問題。

我的Java客戶端:

 String url = "http://localhost:8081/api/xml"; 
     String name = "admin"; 
     String password = "admin"; 
     String authString = name + ":" + password; 
     String authStringEnc = new BASE64Encoder().encode(authString.getBytes()); 
     System.out.println("Base64 encoded auth string: " + authStringEnc); 
     Client restClient = Client.create(); 
     WebResource webResource = restClient.resource(url); 
     ClientResponse resp = webResource.accept("application/xml") 
             .header("Authorization", "Basic " + authStringEnc) 
             .get(ClientResponse.class); 
     if(resp.getStatus() != 200){ 
      System.err.println("Unable to connect to the server"); 
     } 
     String output = resp.getEntity(String.class); 
     System.out.println("response: "+output); 
+0

401錯誤,這意味着你有一個授權問題。檢查您的settings.xml是否正確配置了條目。 – JonyD

回答

0

我已經在詹金斯url.PBF加入API令牌解決它,工作代碼片段

String url ="http://<user name>:<apitoken for user>@localhost:8081/api/xml"; 
    String name = "admin"; 
    String password = "admin"; 
    String authString = name + ":" + password; 
    String authStringEnc = new BASE64Encoder().encode(authString.getBytes()); 
    System.out.println("Base64 encoded auth string: " + authStringEnc); 
    Client restClient = Client.create(); 
    WebResource webResource = restClient.resource(url); 
    ClientResponse resp = webResource.accept("application/xml") 
            .header("Authorization", "Basic " + authStringEnc) 
            .get(ClientResponse.class); 
    if(resp.getStatus() != 200){ 
     System.err.println("Unable to connect to the server"); 
    } 
    String output = resp.getEntity(String.class); 
    System.out.println("response: "+output);