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

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

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

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

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

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

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

1 Ответ

2 голосов
/ 18 января 2012

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

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

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

...