2017-05-29 20 views
0

私は「管理者」休憩APIの認証の失敗 - ジェンキンス

のリストを取得し、残りのAPIを呼び出してしようとしているときに、私は以下のエラーを取得していますように、ユーザー名とパスワードを使用して、ポート8081とセットアップの管理者ユーザーにJeninkinsをインストールしましたジョブを手動でJavaクライアントに

ERRORを使用して作成:

http://localhost:8081/api/xmlが無断401の応答ステータスを返さGET」することができますが、ユーザーを認証すると、問題を解決するのに役立ちます。

私の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エラーは、ジェンキンスurl.PBFにAPIトークンを追加することにより、作業のコードスニペットを、それを解決してきました。 settings.xmlにのエントリが正しく設定されているかどうかを確認します。 – JonyD

答えて

0

私はあなたが、認可の問題を持っていることを意味し

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);