2017-05-29 146 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);