gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:48:39 25 4
gpt4 key购买 nike

我尝试使用 Jersey 制作一个 REST 客户端来连接 Ambari 服务器。但使用Filter无法完成授权。

除了Filter之外还有其他的授权方式吗?

我尝试的案例如下:

ClientConfig clientConfig = new DefaultClientConfig();

        clientConfig.getFeatures().put(
JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);

Client client = Client.create(clientConfig);

client.addFilter(new ClientFilter() {
private ArrayList<Object> cookies;

@Override
public ClientResponse handle(ClientRequest request) throws ClientHandlerException {
if (cookies != null) {
request.getHeaders().put("Cookie", cookies);
}
ClientResponse response = getNext().handle(request);
// copy cookies
if (response.getCookies() != null) {
if (cookies == null) {
cookies = new ArrayList<Object>();
}
// A simple addAll just for illustration (should probably check for duplicates and expired cookies)
cookies.addAll(response.getCookies());
}
return response;
}
});

String username = "admin";
String password = "admin";

WebResource webResource = client.resource("http://master.node.ibm.com:8080/api/v1/clusters");

Form form = new Form();
form.putSingle("Username", username);
form.putSingle("Password", password);
webResource.type("application/json").post(form);

ClientResponse response = webResource.accept("application/json").type("application/json").get(ClientResponse.class);

最佳答案

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

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

关于java - 如何使用 Jersey 作为 Rest 客户端连接 Ambari 进行授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com