NTLM 認証を必要とする IIS Web サイトに接続する Java クラスを作成しました。Java クラスは JCIFS ライブラリを使用し、次の例に基づいています。
Config.registerSmbURLHandler();
Config.setProperty("jcifs.smb.client.domain", domain);
Config.setProperty("jcifs.smb.client.username", user);
Config.setProperty("jcifs.smb.client.password", password);
URL url = new URL(location);
BufferedReader reader = new BufferedReader(
new InputStreamReader(url.openStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
この例は、コマンド プロンプトから実行すると正常に動作しますが、サーブレット コンテナー (具体的には GlassFish) で同じコードを使用しようとするとすぐに、IOException
「サーバーが HTTP 応答コードを返しました: 401 for URL: .. ..」。
jcifs jar をシステム クラスパス (%GLASSFISH%/lib) に移動しようとしましたが、違いはないようです。
提案は大歓迎です。