Я пишу приложение App Engine, которое взаимодействует с корпоративным сервером SharePoint, который должен проходить аутентификацию с использованием аутентификации NTLM (без поддержки Basic, дайджеста или аутентификации Kerberos)
I 'используя Apache HttpClient 4.1.3 , поскольку он поддерживает проверку подлинности NTLM "из коробки".
Вам необходимо реализовать пользовательские ClientConnectionManager и ManagedClientConnection потому что некоторые классы, используемые внутри, отсутствуют в белом списке AppEngine JRE Class , но обнаружены несколько реализаций в Интернете, поэтому никаких проб нет ( ESXX Server реализует один).
Со временем он работает на моем локальном сервере разработки AppEngine, но, к моему удивлению, он не будет работать на рабочем сервере AppEngine.
После многих исследований я обнаружил, что для аутентификации NTLM требуетсяпостоянное соединение для установления связи, состоящей в обмене 3 сообщениями в 2 последовательныхHTTP-запросы.Эти 2 HTTP-запроса ДОЛЖНЫ быть выполнены с использованием одного и того же соединения (постоянное соединение), если сервер не откажется аутентифицироваться.
Кажется, URLFetchService использует разные соединения для каждого запроса и нет способа сохранить соединение открытым.То же самое применимо, если вы используете URLConnection ... как только вы получите ответ, вы не сможете отправить больше данных в этом соединении.
Кому-нибудь удалось выполнить проверку подлинности NTLM в AppEngine?
Есть ли в любом случае постоянное соединение?
Я использую AppEngine версии 1.6.3.