Java 如何使用Jersey作为Rest客户端连接Ambari进行授权

Java 如何使用Jersey作为Rest客户端连接Ambari进行授权,java,rest,jersey,Java,Rest,Jersey,我尝试使用Jersey创建一个rest客户端来连接Ambari服务器。但是,无法使用筛选器完成授权 除了过滤器,还有其他授权方式吗 我审理的案件如下: ClientConfig ClientConfig=newdefaultclientconfig() clientConfig.getFeatures().put( JSONConfiguration.FEATURE_POJO_映射,Boolean.TRUE); Client=Client.create(clientConfig); client

我尝试使用Jersey创建一个rest客户端来连接Ambari服务器。但是,无法使用筛选器完成授权

除了过滤器,还有其他授权方式吗

我审理的案件如下:

ClientConfig ClientConfig=newdefaultclientconfig()

clientConfig.getFeatures().put(
JSONConfiguration.FEATURE_POJO_映射,Boolean.TRUE);
Client=Client.create(clientConfig);
client.addFilter(新ClientFilter(){
私人ArrayList cookies;
@凌驾
公共ClientResponse句柄(ClientRequest请求)引发ClientHandlerException{
如果(cookies!=null){
request.getHeaders().put(“Cookie”,cookies);
}
ClientResponse response=getNext().handle(请求);
//复制cookies
if(response.getCookies()!=null){
如果(cookies==null){
cookies=新的ArrayList();
}
//一个简单的addAll,仅用于说明(可能应该检查重复的和过期的cookie)
addAll(response.getCookies());
}
返回响应;
}
});
字符串username=“admin”;
字符串password=“admin”;
WebResource WebResource=client.resource(“http://master.node.ibm.com:8080/api/v1/clusters");
表单=新表单();
表单.putSingle(“用户名”,用户名);
表格.putSingle(“密码”,密码);
webResource.type(“application/json”).post(表单);
ClientResponse response=webResource.accept(“application/json”).type(“application/json”).get(ClientResponse.class);

您试图发布带有凭据的表单-这不是您想要的。对于标准的基本身份验证(与使用
curl-u username:password时相同),您应该

webResource.addFilter(new HTTPBasicAuthFilter(username, password));
webResource.addFilter(new HTTPBasicAuthFilter(username, password));