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

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

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

1 Ответ

0 голосов
/ 13 января 2009

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

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

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

См. http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

...