Подписанный Java-апплет - PullRequest
       14

Подписанный Java-апплет

1 голос
/ 20 июля 2010

Я создаю сокет-соединение с неподписанным апплетом на другом хосте и получаю java.security.AccessControlException: доступ запрещен

Если я подпишу этот апплет с помощью «self-cert» или «CA cert», получит ли апплет разрешения на создание соединения через сокет с другим хостом (не тем хостом, с которого он был загружен) и выдаст сообщение безопасности всплывающее окно, если оно было сертифицировано CA?

Спасибо

Ответы [ 2 ]

4 голосов
/ 20 июля 2010

Если вы не подпишите апплет, код, обращающийся к локальным ресурсам, не будет выполнен никоим образом.

Если вы подпишите апплет с помощью самокерта, конечный пользователь получит только предупреждающее сообщение, запрашивающее разрешение.Тем не менее, вам все еще нужно заключить вызов в AccessController#doPrivileged().

public void init() {
    AccessController.doPrivileged(new PrivilegedAction<Object> {
        @Override public Object run() {
            // Put your original init() here.
            return null;
        }
    });
}

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

0 голосов
/ 20 июля 2010

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

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

...