Как настроить SPNEGO / KERBEROS в async-http-клиенте? - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь настроить аутентификацию 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.

Код выше выглядит правильно или есть что-то еще? Существуют ли системные свойства, которые нужно включить?

...