Проверка подлинности загрузки апплета - PullRequest
2 голосов
/ 09 августа 2011

У меня есть веб-сайт, работающий на IIS 7.5 со встроенной аутентификацией Windows. В папке /Content (с анонимным доступом) есть апплет - MyApplet.jar. При использовании этого апплета Java отображает всплывающее окно «Требуется аутентификация» (и это всплывающее окно не запоминает мой пароль, даже если я установил флажок «запомнить»).

Есть ли способ удалить это окно?

Это консоль Java перед загрузкой апплета:

network: Cache entry not found [url: http://192.168.10.136/Web/Examination.mvc/Details/PatientEHR/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration, version: null]
network: Connecting http://192.168.10.136/Web/Examination.mvc/Details/PatientEHR/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration with proxy=DIRECT
network: Connecting http://192.168.10.136:80/ with proxy=DIRECT
network: Connecting http://192.168.10.136/Web/Examination.mvc/Details/PatientEHR/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration with cookie "JCP-store=HDImageStore; JCP-key=Inf_WOPass"
network: Firewall authentication: site=/192.168.10.136:80, protocol=http, prompt=, scheme=ntlm

Ответы [ 2 ]

2 голосов
/ 14 августа 2011

Похоже, ваш апплет выполняет синтаксический анализ XML.Если это так, то происходит то, что Java ищет анализатор XML (с getClass (). GetResource (...)) и в качестве пути вашего апплета будет выполнять HTTP-запрос к вашему серверу.

Чтобы предотвратить это, вы можете определить синтаксический анализатор XML в методе init вашего апплета с помощью

 Class.forName("com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
 System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");

Начиная с Java6u10, у вас также есть возможность удалить путь вашего апплета из пути к классам (но неапплет) с

<APPLET ...>
    <PARAM name="codebase_lookup" value="false">
</APPLET>

Энтони

0 голосов
/ 14 августа 2011

Из моего ограниченного опыта и исследований это больше связано с клиентским Java-мостом, а не со стороны сервера. Вы можете попробовать отключить плагины следующего поколения на клиентском компьютере, чтобы посмотреть, поможет ли это.

Windows: Панель управления> Java> вкладка «Дополнительно»> Подключаемый модуль Java> (снимите флажок) Включить следующее поколение ...

Если это не работает или невозможно изменить настройки клиента, в качестве обходного пути вы можете исключить апплеты из аутентификации. Апплет может вызывать javascript для связи с сервером, который выполняется браузером, таким образом избегая страшного диалога аутентификации java. Пока ваша бизнес-логика находится на сервере с соответствующей проверкой и аутентификацией (они должны это делать), она не должна создавать угрозу безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...