Параметры клиента Java HTTP
В этом разделе рассказывается об известных реализациях поддержки NTLM с клиентом Java HTTP, чтобы вы могли выбрать реализацию, которая лучше всего соответствует вашим потребностям.
Доступные реализации:
Sun JRE 1.4.2 или выше (бесплатно) - полная поддержка протокола NTLM (LM / NTLM / NTLM V2) только на платформе Windows. Поддерживает все уровни конфигурации NTLM (я бы предположил, я не пробовал).
Sun JRE 6 или 5 (только 1.5_08 или выше) (бесплатно) - полная поддержка протокола NTLM (LM / NTLM / NTLM V2) на всех платформах. Поддерживает все уровни конфигурации NTLM (я бы предположил, я не пробовал). Однако на компьютере с Windows предполагается, что вы хотите пройти аутентификацию, используя текущего пользователя. Вы можете обойти это только после сбоя аутентификации.
Jakarta (Apache) HTTP Client (бесплатно, лицензия Apache) - Поддержка протокола LM / NTLM (не NTLM V2) на всех платформах Java. Требуется JRE 1.2 или выше. Не совместим с плагинами с классами Java UrlConnection. Отсутствует поддержка OEM-кодирования (как того требуют определенные прокси-серверы). Поддержка NTLM была добавлена довольно давно, и они, похоже, не заинтересованы в ее расширении. Поддерживаются только уровни конфигурации NTLM 0-3.
Инновационный HTTP-клиент с поддержкой Luigi Dragone NTLM (бесплатно, LGPL) - статус этого неясен; Мне было трудно заставить его работать надежно, и это программное обеспечение не выпускалось с 2002 года. Оно не совместимо с подключаемым классом Java URLConnection. Вероятно, поддерживает только уровни конфигурации NTLM только 0-3.
JCIFS (бесплатно, LGPL) - Plug-совместимая поддержка для LM / NTLM (не NTLM V2) на всех платформах Java. Не ясно, реализована ли OEM-кодировка. Поддерживает конфигурации NTLM только уровней 0-3.
Java-клиент Oakland Software Java (не бесплатный) - полная совместимая с подключаемыми модулями поддержка LM / NTLM / NTLMv2 на всех платформах Java JRE версии 1.2 или выше. Поддерживает кодировку Unicode и OEM. Поддерживает все уровни конфигурации NTLM.
Если ваша реализация Java 1.4.2 или выше, и вы используете Java на Windows, используйте встроенную поддержку JRE, и все готово. Опционально используйте класс java.net.Authenticator вместе с настройкой некоторых сетевых свойств
Если вы можете изменить машину Windows на уровень конфигурации NTLM менее 4 (чтобы не требовать NTLM V2), и убедитесь, что для параметра Сетевая безопасность: Минимальная сеансовая безопасность для серверов на базе NTLM SSP (включая защищенный RPC) не установлено значение требуется NTLM V2, затем используйте либо HTTP-клиент Jakarta (если вам не нужна совместимость с плагином), либо HTTP-клиент JCIFS, если вы это делаете. Кроме того, если вы обращаетесь к своему HTTP-серверу через прокси-сервер, который поддерживает только OEM-кодировку для NTLM, вы не сможете использовать HTTP-клиент Jakarta (это также верно для JCIFS?).
Обратите внимание, что существует потенциальная совместимость, связанная с недостатком HTTP-клиента JCIFS