аутентифицируйте с ntlm (или kerberos) использование java UrlConnection

для низкоуровневых развлечений я предложил бы Michael Abrash
i) - Дзэн Оптимизации кода - и
ii) - Графика, Программируя Черный список -
, даже если Вы не делаете никакого графического программирования.

6
задан opensas 23 July 2009 в 01:42
поделиться

2 ответа

Согласно этой странице , вы можете использовать встроенные классы JRE с оговоркой, что более ранние версии Java могут делать это только на компьютер с Windows.

Однако, если вы хотите жить со сторонней зависимостью, вам подойдет IMO Apache Commons HttpClient 3.x . Здесь - документация по использованию аутентификации, включая NTLM. В общем, HttpClient - гораздо более функциональная библиотека.

Последняя версия HttpClient - 4.0, но очевидно, что эта версия не поддерживает NTLM , эта версия требует немного дополнительных работа .

Вот как я думаю код будет выглядеть, хотя я не пробовал:

HttpClient httpClient = new HttpClient();
httpClient.getState().setCredentials(AuthScope.ANY, new NTCredentials(user, password, hostPortionOfURL, domain));
GetMethod request = new GetMethod(url);
BufferedReader reader = new InputStreamReader(request.getResponseBodyAsStream());

Удачи.

0
ответ дан 18 December 2019 в 05:08
поделиться

Взгляните на класс SpnegoHttpURLConnection в проекте SPNEGO HTTP Servlet Filter. В этом проекте также есть несколько примеров.

В этом проекте есть клиентская библиотека , которая в значительной степени делает то, что вы делаете в вашем примере.

Взгляните на этот пример из javadoc ...

 public static void main(final String[] args) throws Exception {
     final String creds = "dfelix:myp@s5";

     final String token = Base64.encode(creds.getBytes());

     URL url = new URL("http://medusa:8080/index.jsp");

     HttpURLConnection conn = (HttpURLConnection) url.openConnection();

     conn.setRequestProperty(Constants.AUTHZ_HEADER
             , Constants.BASIC_HEADER + " " + token);

     conn.connect();

     System.out.println("Response Code:" + conn.getResponseCode());
 }
-2
ответ дан 18 December 2019 в 05:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: