簡體   English   中英

無法使用java.net.URLConnection在一個會話中使用不同的NTLM憑據進行身份驗證

[英]Can't authenticate with different NTLM credentials in one session with java.net.URLConnection

當我使用標准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正在使用的憑據?

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6626700

表明這是一個突出的bug。 那里的一位作者提出了一些令人討厭的反思魔法來克服這個問題。 只要這是內部的並且記錄為脆弱且可能破壞,那就沒問題。 當然不是很好

HttpClient 4.x + jCIFS 1.3.x可以替代嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM