JNLPAppletLauncher не может найти имя класса subApplet с момента обновления Java 21

Начиная с версии 1.6.0_21-b07 JRE org.jdesktop.applet.util.JNLPAppletLauncher больше не может найти класс, содержащийся в параметре subapplet.classname. В https://applet-launcher.dev.java.net/source/browse/applet-launcher/trunk/src/org/jdesktop/applet/util/JNLPAppletLauncher.java?rev=41&view=log ваше имя появляется в редакции 41 для улучшенной загрузки класса субапплета. Если это действительно вы можете посмотреть?

С уважением,

Анри Мэнсон

1 ответ

Я не знаю конкретную причину, которую вы находите JNLPAppletLauncher не найдет ваш апплет, но я могу дать некоторую предысторию:

JNLPAppletLauncher был подписанный фляга, разработанная, чтобы быть использованной с недоверенным кодом. Смешивание доверенного и недоверенного кода на самом деле является уязвимостью. При исправлении смешанного кода 6u19 подобный код должен вызывать диалоговое окно с предупреждением безопасности.

Подобные JNLPAppletLauncher банка должна быть помечена Trusted-Library: true в манифесте. В коде могут потребоваться изменения (цитируемые в вопросе), чтобы использовать загрузчик классов апплета, а не родительский загрузчик классов доверенной библиотеки.

Во избежание появления диалогового окна предупреждения безопасности с использованием определенных jar-файлов до 6u19, некоторые распознаются (используя ту же реализацию, что и функция черного списка) и выполняются так, как если бы они выбрали опцию Trusted-Library особенность. Если вы восстановите банку, она не будет распознана и потребует записи манифеста.

С уважением,

Том Хотин

Другие вопросы по тегам