Java-апплет java.security.AccessControlException: доступ запрещен java.net.SocketPermission - PullRequest
0 голосов
/ 07 апреля 2011

Мой друг дал мне скрипт для запуска скинов майнкрафта на моем сайте, но я продолжаю получать эту ошибку, и у меня нет никакой подсказки, как это сделать ... = (http://allcitybuilder.com/new/example.html

java.security.AccessControlException: access denied (java.net.SocketPermission www.minecraft.net:80 connect,resolve)
   at java.security.AccessControlContext.checkPermission(Unknown Source)
   at java.security.AccessController.checkPermission(Unknown Source)
   at java.lang.SecurityManager.checkPermission(Unknown Source)
   at java.lang.SecurityManager.checkConnect(Unknown Source)
   at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
   at sun.net.www.http.HttpClient.openServer(Unknown Source)
   at sun.net.www.http.HttpClient.<init>(Unknown Source)
   at sun.net.www.http.HttpClient.New(Unknown Source)
   at sun.net.www.http.HttpClient.New(Unknown Source)
   at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
   at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
   at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
   at net.minecraft.skintest.math.Zombie$1.run(Zombie.java:82)

Ответы [ 3 ]

0 голосов
/ 07 апреля 2011

Обычно апплетам разрешен только доступ к хосту, с которого они пришли (в вашем случае allcitybuilder.com). Таким образом, вы должны либо поместить файл для просмотра также на этот хост (или установить прокси-сервер там), либо вашему апплету нужны дополнительные привилегии, чтобы иметь больше доступа.

Чтобы апплет имел больше доступа, он должен иметь цифровую подпись, а пользователь должен подтвердить загрузку апплета.

Но нет способа сказать «мне нужен только доступ к minecraft.net», и пользователь может предоставить вам только это разрешение (без ручного редактирования файлов политики), так что это «все или ничего». Кроме того, если пользователь отказывается, апплет может либо работать с обычными разрешениями апплета (на плагине Sun), либо вообще не запускаться (на IcedTea).

С JNLP вы можете получить подтверждение для пользователя для отдельных действий, но это только для локального доступа, а не для удаленного.

0 голосов
/ 07 апреля 2011

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

В качестве альтернативы сайт может добавить файл crossdomain.xml, чтобы разрешить доступ к коду, загруженному с сайтов не того же происхождения.

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

0 голосов
/ 07 апреля 2011

Вы должны разрешить апплету подключаться к ресурсу.

Взгляните на обучающий учебник по апплетам: http://www -personal.umich.edu / ~ lsiden / tutorials / подписанный-апплет / подписанный-апплет.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...