Эта ссылка подробно описывает различные реализации Java-клиента http.Я ищу любые ссылки, которые могли бы предоставить информацию об их различиях реализации протокола NTLM.
На одном из компьютеров с Windows я обнаружил, что реализация клиента 3.1 commons-http завершается неудачно с ошибкой авторизации (код состояния http 401), но реализация java 1.5 завершается успешно.Поскольку реализация java 1.5 протокола аутентификации NTLM не является открытым исходным кодом, я не могу сравнить две реализации, чтобы понять, что может быть не так.
Обновление 1
Iосведомлен о том, что http-клиент commons не поддерживает NTLM v2.Эта ссылка обеспечивает сравнение между различными реализациями Java-клиента Java и упоминает, что Apache http-клиент обеспечивает частичную реализацию протокола NTLM.Более подробно об этом не говорится.
При дальнейшем устранении проблемы я также обнаружил, что реализация NTLM, предоставляемая этой ссылкой в сочетании с HTTPClient , работает в Windows.машина (реализация http-клиента commons не работает, как я уже упоминал выше).
Update 2
По сниффингу пакетов (с помощью wirehack) я понял, что http-клиент commons3.1 Реализация протокола ntlm не генерирует отклик NTLM в сообщении типа 3.Это генерируется реализацией JDK.Известны ли вам какие-либо настройки сервера / клиента, которые указывают, что аутентификация не будет выполнена, если данные ответа NTLM будут пустыми?(поскольку ошибка аутентификации, с которой мы сталкиваемся, воспроизводима только на одном компьютере. Аутентификация в другом месте успешна.)