Я создал класс Java, который подключается к веб-сайту IIS, требующему проверки подлинности NTLM. Класс 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 для URL: .... ".
Я пытался переместить jcifs jar в системный путь к классу (% GLASSFISH% / lib), но, похоже, это не имеет значения.
Предложения высоко ценятся.