我有一个 Jenkins 1.515 服务器。这被配置为将访问控制委托给 servlet 容器(独立的 Tomcat 6)。我正在使用基于矩阵的安全性,并为用户“foo”的每个操作打勾。
我正在尝试使用 HttpClient (4.2.3) 来查询构建状态。使用基本的 HttpClient 身份验证,到目前为止我有:
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(
new AuthScope("dev.mycompany.com", 80),
new UsernamePasswordCredentials("foo", "bar"));
try {
HttpPost httpost = new HttpPost("http://dev.mycompany.com/jenkins/rssLatest");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpost, responseHandler);
System.out.println(responseBody);
} finally {
httpclient.getConnectionManager().shutdown();
}
当它执行时,结果是:
Exception in thread "main" org.apache.http.client.HttpResponseException: Forbidden
现在,我尝试了许多不同的“示例”,通过谷歌找到了不同的方法来使用 HttpClient 进行身份验证,但所有这些都导致上述相同的错误或“内部服务器错误”。
我需要确定使用 HttpClient 4 对此 Jenkins 实例进行身份验证的确切程序。