gpt4 book ai didi

web-services - RESTEasy 客户端代理抢占式基本身份验证

转载 作者:可可西里 更新时间:2023-11-01 16:44:02 24 4
gpt4 key购买 nike

我正在使用 RESTEasy Proxy Framework 来调用我的 Rest-Services。我想对代理框架使用抢先式身份验证。

那是我当前的代码:

public void callSomeService() throws Exception {

RegisterBuiltin.register(ResteasyProviderFactory.getInstance());

DefaultHttpClient client = new DefaultHttpClient();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(
USERNAME, PASSWORD);
AuthScope authscope = new AuthScope(AuthScope.ANY_HOST,
AuthScope.ANY_PORT, AuthScope.ANY_REALM);
client.getCredentialsProvider().setCredentials(authscope, credentials);
ApacheHttpClient4Executor executer = new ApacheHttpClient4Executor(client);
dummyResource = ProxyFactory.create(DummyResource.class,
"http://localhost:8888/myapp/rest/", executer);

// Do some calls here
}

当我监控我的应用程序的流量时,Rest-Service 被调用了两次:

  1. 首先客户端收到 401 错误(未授权)
  2. 在第二个请求中添加了授权 header 并且一切正常很好。

我真正想要做的是授权 header 已经添加在第一个请求中!我该怎么做?

我正在使用 RESTEasy 2.3.5!我还阅读了文档 ( http://docs.jboss.org/resteasy/docs/2.3.5.Final/userguide/html_single/index.html#transport_layer ),其中给出了一个用于抢先身份验证的示例,该示例实际上不起作用,因为此代码:

BasicScheme basicAuth = new BasicScheme();
authCache.put("com.bluemonkeydiamond.sippycups", basicAuth);

最佳答案

没错,文档中的示例无法编译。尝试用 HttpHost 的实例替换字符串“com.bluemonkeydiamond.sippycups”。 HttpHost 类有几个构造函数,所以一定要查看 JavaDocs。最简单的构造函数接受一个字符串。例如,

BasicScheme basicAuth = new BasicScheme();
authCache.put(new HttpHost("com.bluemonkeydiamond.sippycups"), basicAuth);

关于web-services - RESTEasy 客户端代理抢占式基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13951574/

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