Как безопасно запустить Swing-действие в ограниченном апплете?

StackOverflow https://stackoverflow.com/questions/438508

Вопрос

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

Есть ли способ поставить событие в очередь событий? JComponent.dispatchEvent не выполняет работу, потому что обрабатывает само событие.

Это было полезно?

Решение

Краткий ответ: вы не можете без подписи апплета.

Длинный ответ. Если бы вы могли без разрешений, вы могли бы ставить в очередь все виды интересных сообщений. Ваш пример, вставка или в расширенной форме: иметь доступ к тому, что клиент скопировал ранее, - это действие, которое клиент должен знать и авторизовать. Подумайте о апплете румян, который отслеживает буфер обмена, вставляя все и отправка по проводам на удаленный сервер. Ваш PIN-код, например.

Решение состоит в том, чтобы подписать ваш апплет, сообщив клиенту: «Ответственность за то, что этот апплет не является злым, лежит на вас (ваше имя здесь)». и спрашивая пользователя, верит ли он вам. Если да, менеджер безопасности больше не будет блокировать вас. Если нет - то пользователь не доверяет вам, почему JVM должна делать иначе?

См. http://java.sun.com/developer/. onlineTraining / Программирование / JDCBook / signed.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top