[英]Rest API authentication failure - Jenkins
我已經在端口8081上安裝了Jeninkins,並以用戶名和密碼將管理員用戶設置為'admin'
嘗試調用rest API以獲得使用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);
我已經通過在Jenkins 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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.