4

標準の 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 が使用している資格情報をリセットまたは変更する方法はありますか?

4

2 に答える 2

3

いいえ

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

これが未解決のバグであることを示します。そこの著者は、これを乗り越えるために厄介なリフレクション マジックを提案しています。これが社内のものであり、壊れやすく壊れる可能性があると文書化されている限り、それは問題ありません。確かに素晴らしくない

于 2010-06-09T23:03:09.400 に答える
1

HttpClient 4.x + jCIFS 1.3.xは代替手段になりますか?

于 2010-05-27T13:13:34.737 に答える