Предлагая запасной вариант для исключения безопасности апплета - PullRequest
0 голосов
/ 02 апреля 2012

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

Я хотел запустить таймер и перенаправить его через определенный промежуток времени, но это не совсем точно, и было бы неплохо вместо этого получить ответ из всплывающего окна.

Исключение выдается, если пользователь отклоняет предупреждение:

java.lang.SecurityException: attempted to open sandboxed jar [jar-file] 
    as a Trusted-Library

Исключение выдается до достижения функции инициализации.

1 Ответ

1 голос
/ 02 апреля 2012

Я смотрел, чтобы таймер работал и перенаправлял через определенный промежуток времени.

.. расширить это, чтобы добавить функцию JS, которая отменяет таймер, а затем вызвать этот JS из апплета, - это лучшая защита, которую вы можете получить.

Попробовать / поймать вопросы, связанные с безопасностью, может работать для некоторых JRE, которые загружают апплет в «песочнице», если в запросе безопасности отказано, но другие среды выполнения (особенно Iced Tea JRE) не будут загружаться апплет вообще, если в запросе безопасности отказано.

У меня есть апплет, который требуется для запуска с некоторыми привилегиями. По сути, мы храним файл там, файл может быть любым файлом, и поэтому размер может быть любым значением. Пользователь сам выберет этот файл, и он может выбрать что угодно: от текстового файла размером 1 КБ до фильма объемом в несколько гигабайт. ..

Если у пользователя может быть гарантировано наличие JRE 'Next Generation' - Plug-In 2 (упомянуто в информации апплета . Стр. ), можно использовать JNLP API во встроенном апплет. Службы JNLP предоставляют доступ к локальным дискам для приложения в песочнице. См. Демонстрационную файловую службу JNLP .

Но есть небольшая заминка. Нет возможности сохранить путь к файлу, выбранному пользователем. В этой менее защищенной среде JRE не предоставляет File, а вместо этого объект JNLP API FileContents. Он не предоставит путь и не будет сериализуем. Но если пользователь хочет выбирать файл при каждом запуске, он может быть работоспособным.


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

...