Как избежать предупреждения смешанного кода от сторонних библиотек загрузки бинарных ресурсов?

Я работаю над огромным апплетом, загружающим более 100 банок, 50 из которых сторонние. Все они подписаны и доверены.

К сожалению, одна, openmap, загружает двоичные файлы (файлы форм и слоев). Я не могу подписать эти файлы (AFAIK), потому что они не являются банками, не имеют манифестов и т. Д.

Поскольку jar загружает двоичные файлы, я получаю предупреждение о смешанном коде при запуске. Единственное, что я решил избежать, это пометить КАЖДЫЙ.jar как "Trusted-Library: true". Изменение манифеста на всех.jars означает, что все.jars должны быть переподписаны, что является политической проблемой.

Я знаю, что диалог может быть отключен в панели управления Java. Я ищу другой обходной путь. Наивно, я хотел бы иметь возможность как-то пометить openmap или мой jar-файл, который использует его для доверия (или чего-то еще) для загрузки этих файлов без предупреждения. Я попытался сделать openmap доверенной библиотекой, которая не устраняет ошибку. Если я попытаюсь сделать свой jar-файл, использующий openmap, доверенной библиотекой, я столкнусь с проблемами, потому что мой jar-файл зависит от других jar-файлов, и определения классов в моем jar-файле не могут быть загружены, поскольку эти зависимые классы находятся в другом загрузчике классов.

Редактировать:
Похоже, это вызывает диалог (нажал "Да, блокировать потенциально небезопасно", чтобы получить этот оператор записи)

security: имя ресурса "http://localhost:8080/maps/politWorld/vmap_political_world/vmap_area_thin.shp" в http://localhost:8080/app/client-lib/: java.lang.SecurityException: доверенный загрузчик попытался загрузить изолированной ресурс от http://localhost:8080/app/client-lib/

1 ответ

Если вы загрузили файлы в jar-файлы, подпишите их и загрузите как ресурс, это должно быть хорошо. У вас могут возникнуть проблемы с загрузкой их через URL, который находится в кодовой базе (так как их становится невозможно отличить от части апплета). Однако, если вы удалите их из кодовой базы, помните, что они могут быть заменены чем-то вредоносным, поэтому им нельзя доверять.

Я предлагаю не добавлять Trusted-Library: true так как маловероятно, что это будет безопасно. Не то, чтобы какой-либо код был вредоносным, но он не предназначен для безопасного использования в качестве библиотеки.

Кроме того, отключение предупреждений со смешанным кодом открывает клиентский компьютер для атаки, которую должны смягчить предупреждения со смешанным кодом.

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