4

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();

どんな助けにも感謝します。ありがとう。

4

0 に答える 0