2012-04-10 3 views
0

Хорошо, у меня есть апплет, который я пытаюсь встроить в HTML-страницы, и это бросает:Java Applet AccessControlException: доступ запрещен (SocketPermission) - ГДЕ я поставил исправление?

AccessControlException: access denied (java.net.SocketPermission someTarget connect, resolve) 

Это нормально; Я знаю, что исправить это либо:

grant { 
    permission java.net.SocketPermission "someTarget", "connect, resolve"; 
}; 

Или

SocketPermission p1= new SocketPermission("someTarget", "connect,resolve"); 

То, что я хочу знать это: Какой из этих двух вещей, мне нужно, и где в моем коде я должен поставить это?

ответ

3

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

+1

* "на тот же хост" * Прокси-сервер также может использоваться для загрузки данных с «чужих» сайтов. –

1

Самое простое решение - подписать апплет.

+0

@ downvoter любезно объяснить – EJP

0

Как уже упоминалось EJP, способ получить доверие - это цифровой подписи кода. См. Signing and Verifying JAR Files для более подробной информации.

Неправильно развертывать файлы политики на компьютере конечного пользователя для апплета, выходящего из Интернета. Когда дело доходит до сети компьютеров, которые все контролируются вами, возникает вопрос: почему бы просто не использовать JWS-приложение? Приложение JWS. все равно необходимо будет иметь цифровую подпись (или использовать файл политики), но также будет легче разработать развертывание &.

Обратите внимание, что «получение доверия» не является чем-то, что требует каких-либо изменений в коде. Вместо этого код должен быть подписан вами и ему будет доверять конечный пользователь при появлении запроса. Единственное, что приходит на ум, - это то, что если метод апплета вызывается с использованием JS, он становится ненадежным, если вы не делаете некоторые настройки кода.

 Смежные вопросы

  • Нет связанных вопросов^_^