Как избежать предупреждения смешанного кода от сторонних библиотек загрузки бинарных ресурсов?
Я работаю над огромным апплетом, загружающим более 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
так как маловероятно, что это будет безопасно. Не то, чтобы какой-либо код был вредоносным, но он не предназначен для безопасного использования в качестве библиотеки.
Кроме того, отключение предупреждений со смешанным кодом открывает клиентский компьютер для атаки, которую должны смягчить предупреждения со смешанным кодом.