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

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
214
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Короткий ответ: без подписи апплета нельзя.

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

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

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

Другие вопросы по теме