NT-аутентификация с помощью GoogleHttpClient

Как вы должны делать NT-аутентификацию, используя Google Http Client?

Я могу найти много информации для Apache HttpClient а также NTCredentials и у меня это работает, но ничего не работает с клиентом Google, на котором я пытаюсь стандартизировать новый код.

Я получил это далеко:

final NTCredentials ntc = new NTCredentials(System.getProperty("user.name"), args[0], InetAddress.getLocalHost().getHostName(), "DOMAIN");
final BasicCredentialsProvider cp = new BasicCredentialsProvider();
cp.setCredentials(AuthScope.ANY, ntc);
final HttpClientBuilder hcb = HttpClientBuilder.create();
hcb.setDefaultCredentialsProvider(cp);
final HttpTransport ht = new ApacheHttpTransport(hcb.build());

и я получаю это исключение:

Exception in thread "main" java.lang.UnsupportedOperationException
    at org.apache.http.impl.client.InternalHttpClient.getParams(InternalHttpClient.java:210)
    at com.google.api.client.http.apache.ApacheHttpTransport.<init>(ApacheHttpTransport.java:129)
    at GoogleHttpClientScratch.main(GoogleHttpClientScratch.java:36)

вызвано этим в org.apache.http.impl.client.InternalHttpClient.java:

@Override
public HttpParams getParams() {
    throw new UnsupportedOperationException();
}

1 ответ

Решение

ApacheHttpTransport Solution

Я закончил тем, что потянул самое последнее dev ветка и исправление обидчика ApacheHttpTransport сам конструктор.

Я также отправил запрос на включение, чтобы изменения были объединены с основным проектом.

Я на самом деле исправил версию 1.20.0 потому что это то, что я использую и перекомпилировал и установил только этот модуль в моем локальном репозитории maven.

Я знаю лучшее решение, используя RequestConfig существует, но это решает проблему для меня и заставляет меня снова работать сейчас.

Если я рефакторинг весь класс для использования RequestConfig Я тоже обновлю свой форк. Мне нужно прочитать о том, как RequestConfig предназначен для правильного использования и требует времени.