Аутентификация загрузки апплета


У меня есть веб-сайт, работающий на 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

2 ответа:

Похоже, что ваш апплет выполняет синтаксический анализ 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 у вас также есть возможность удалить путь вашего апплета из classpath (но не апплет) с помощью

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

Энтони

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

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

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