当我使用标准 Java API (java.net.URLConnection) 访问 HTTP 服务器时,凭据在第一次成功身份验证后被“缓存”,随后对 Authenticator.setDefault() 的调用无效。因此,我需要重新启动应用程序才能使用不同的凭据。
使用基本身份验证时,我没有观察到这种效果。但是我需要为我正在访问的服务器使用 NTLM,而 Jakarta Commons HttpClient 也不是替代品,因为它不支持 NTLMv2(请参阅http://oaklandsoftware.com/papers/ntlm.html)
查看使用 Wireshark 的数据包,我还观察到在第一次成功身份验证之前,首先尝试使用当前 Windows 凭据进行身份验证。但在成功验证后,仅使用保存的凭据。
成功 NTLM 身份验证后,是否有任何方法可以重置或更改 java.net.Authenticator 正在使用的凭据?