java.net の HttpUrlConnection を使用して、Java アプリケーションで NTLM 認証をサポートするサーバーに対して認証しようとしています。
問題は、アプリケーションが認証応答の送信に失敗することです。
トラフィックがフィドラー経由でルーティングされるように、http 接続にプロキシを接続しました。フィドラーでは、ネゴシエート メッセージが送信され、サーバー チャレンジが受信されていることがわかります。しかし、この後、アプリケーションは、type3 認証メッセージを送信せずに、401 を受け取ったと言うのをやめるだけです。
何か案は?ここにコードがあります -
Authenticator.setDefault(new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username",
"password".toCharArray());
}
});
URL url = new URL("https://service_url.svc");
// Proxy for fiddler
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("localhost", 8888));
// Create a connection
HttpURLConnection conn = (HttpURLConnection)url.openConnection(proxy);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
InputStream is = conn.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = rd.readLine()) != null)
System.out.println(line);
rd.close();
どんな助けにも感謝します。ありがとう。