[英]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.