Когда я получаю доступ к HTTP-серверу с использованием стандартного API Java (java.net.URLConnection), учетные данные «кэшируются» после первой успешной аутентификации, и последующие вызовы Authenticator.setDefault () не действуют. Итак, мне нужно перезапустить приложение, чтобы использовать разные учетные данные.
Я не наблюдаю этот эффект при использовании базовой аутентификации. Но мне нужно использовать NTLM для сервера, к которому я обращаюсь, и HttpClient от Jakarta Commons также не является альтернативой, потому что он не поддерживает NTLMv2 (см. http://oaklandsoftware.com/papers/ntlm.html)
Глядя на пакеты, использующие Wireshark, я также замечаю, что перед первой успешной аутентификацией сначала выполняется попытка аутентификации с текущими учетными данными Windows. Но после успешной аутентификации используются только сохраненные учетные данные.
Есть ли способ сбросить или изменить учетные данные, которые использует java.net.Authenticator после успешной аутентификации NTLM?