我创建了一个 Java 类,它连接到需要 NTLM 身份验证的 IIS 网站。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);
}
该示例从命令提示符执行时运行良好,但是一旦我尝试在 servlet 容器(特别是 GlassFish)中使用相同的代码,我就会收到一条IOException
包含消息“服务器返回 HTTP 响应代码:401 for URL:.. ……”。
我尝试将 jcifs jar 移动到系统类路径(%GLASSFISH%/lib),但这似乎没有任何区别。
建议高度赞赏。