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
предназначен для правильного использования и требует времени.