Ваш вопрос мне не совсем понятен, но я попробую ответить на часть native и улучшу этот ответ в то же время, что более или менее относится кта же тема.
Начиная с JDK 7, мы видим следующий com.sun.security.ntlm
собственный пакет, который
$ unzip -l 1.7/jre/lib/rt.jar | grep -i ntlm
4243 2015-04-10 19:56 com/sun/security/ntlm/Client.class
1568 2015-04-10 19:56 com/sun/security/ntlm/NTLM$Reader.class
1831 2015-04-10 19:56 com/sun/security/ntlm/NTLM$Writer.class
6486 2015-04-10 19:56 com/sun/security/ntlm/NTLM.class
617 2015-04-10 19:56 com/sun/security/ntlm/NTLMException.class
3763 2015-04-10 19:58 com/sun/security/ntlm/Server.class
939 2015-04-10 19:56 com/sun/security/ntlm/Version.class
... ...
К сожалению, этот пакет не предназначен для непосредственного использования, как объяснено в Oracle JDK-6982971 ошибка , которая гласит:
Пакет com.sun.security.ntlm и классы внутри него не отображаются как NON_CORE_PKGS и там не видны для javac.
Оттуда решение native опирается на этот обходной путь: скомпилируйте код со всеми исходными файлами com.sun.security.ntlm, которые можно загрузить из здесь , например Client.java , NTLM.java , .. метод Server.verify
, предоставляющий вам доступ к параметрам, которые вы указали в своем вопросе.Обратите внимание, что это свойство отладки может вам помочь (-Dntlm.debug
).
В этой реализации имейте в виду, что оно не скомпилируется до JDK 1.7, так как есть вызов String в switch Statement хотя вы могли бы легко перенести обратно на более раннюю версию Java.
Я рекомендую использовать последний доступный источник, так как ошибки могут быть трудно отследить (например, Java 7) Примечания к выпуску поддержки ,На момент написания статьи, насколько мне известно, текущие версии для использования перечислены в ошибке OpenJDK JDK-7150092 .
. Пока я не кодировал ни один сервер с этим методом, нотолько HTTP-клиент около 100 строк, и это демонстрирует технику.И последнее, что нужно знать, родные классы, о которых я говорю, не многопоточные.