Неподписанный сокет апплета JavaScript - PullRequest
1 голос
/ 17 ноября 2010

В Java 1.6.0.22 я не могу открыть сокет для localhost, апплет не подписан и загружается с веб-сервера http://localhost/myapplet

Если я загружаю его с моего компьютера, ip 192.168.1.x и откройте сокет для этого ip, он работает

С простой демонстрацией, которая только открывает сокет, он работает, но как только мой апплет использует JavaScript для Java, вызов сокета не работает.

Если я добавлю файл crossdomain.xml, сокет снова будет работать.

Если я разрешу только 127.0.0.1, он не будет работать

С 1.6.0.17 онотлично работает

Это похоже на вопрос Сокетное соединение с исходным сервером неподписанного Java-апплета

Но в моем случае я загружаю апплет с веб-сервера, а не из локальной файловой системы.

Ответы [ 4 ]

2 голосов
/ 26 ноября 2010

У этого пользователя возникла похожая проблема. Я обнаружил соответствующую ошибку оракула

доступ запрещен (java.net.SocketPermission 127.0.0.1:8080 connect, разрешение)

http://www.oracle.com/technetwork/java/javase/6u22releasenotes-176121.html

0 голосов
/ 18 ноября 2010

Хотя в документации сказано, что апплет может открыть соединение только с тем хостом, с которого он был загружен, с Tomcat 5 это утверждение не соответствует действительности. У меня есть апплет, который неизменно генерирует «AccessControlException: доступ запрещен (java.net.SocketPermission 66.167.210: 80 подключиться, разрешить», даже если я дал разрешение сокета для этого URL. Я все еще пытаюсь решить эту проблему и я открыт для любых рекомендаций.

0 голосов
/ 22 ноября 2010

Oracle знает об этой проблеме Java, которая серьезно ограничивает использование апплетов: уязвимость безопасности в среде выполнения Java может позволить коду, загруженному из локальной файловой системы, обращаться к LocalHost. Перевод: если вы хотите запустить Java-апплеты, которые общаются с таким сервером, как Tomcat, вы не можете сделать это с последними выпусками Java

И их решение таково: для этой проблемы не существует обходного пути.

И как долго они знают об этой проблеме? 03.12.2008, Bug Id 6704154

Вы можете проверить вышеуказанную информацию по адресу, https://identity.sun.com/amserver/UI/Login?org=self_registered_users&goto=http://sunsolve.sun.com/show.do?target=home

0 голосов
/ 18 ноября 2010

Неподписанные апплеты могут открывать соединения только с тем хостом, с которого они были загружены.

...