如何在async-http-client中设置SPNEGO / KERBEROS?

时间:2019-06-21 22:33:17

标签: java http kerberos spnego

我正在尝试像这样设置org.asynchttpclient:async-http-client:2.8.1的身份验证:

BoundRequestBuilder requestBuilder = ...;

Realm realm = new Realm.Builder()
                       .setUsePreemptiveAuth(true)
                       .setScheme(AuthScheme.SPNEGO)
                       .build();

requestBuilder.setRealm(realm);
requestBuilder.setHeader("Authorization",
                         "Negotiate " +
                         kerberosTokenCache.get(new URL(baseUrl).getHost()));

Response response = httpClient.executeRequest(request)
                              .get(timeout, TimeUnit.MILLISECONDS);

在远程上(不幸的是,我没有管理员访问权限),正在发生一些错误,正在重新启动HTTP 500响应。管理员说,这是由于身份验证失败所致,并且遥控器根本没有响应有意义的异常(由于错误),但这是事实。

我可以看到令牌正在发送。我已经运行kinit,当我执行klist时,我可以看到令牌。

JDK(1.8.0_144)启用了JCE。

上面的代码看起来正确,还是还有更多?是否需要启用某些系统属性?

0 个答案:

没有答案