未签名的applet套接字JavaScript

使用Java 1.6.0.22我无法打开到localhost的套接字,applet是无符号的,正在从webserver http:// localhost / myapplet加载

如果我从我的计算机IP 192.168.1.x加载它并打开一个套接字到它的IP工作

通过一个只打开套接字的简单演示,它可以工作,但是一旦我的applet使用JavaScript到Java调用套接字就行不通。

如果我添加一个crossdomain.xml文件,套接字将再次工作。

如果我只允许127.0.0.1它不起作用

1.6.0.17它工作正常

这类似于与未签名Java小程序的原始服务器的Socket连接问题

但在我的情况下,我从Web服务器加载applet而不是从本地文件系统。

通过这个有类似问题的用户,我找到了相关的oracle bug

访问被拒绝(java.net.SocketPermission 127.0.0.1:8080 connect,resolve)

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

未签名的小程序只能打开与其加载的主机的连接。

Oracle知道严重限制Applet使用的Java问题:Java运行时环境中的安全漏洞可能允许从本地文件系统加载的代码访问LocalHost。 翻译:如果您希望运行与Tomcat等服务器通信的Java Applet,则无法使用最新的Java版本

他们的解决方案是:此问题没有解决方法。

他们知道这个问题多久了? 2008年12月3日,Bug Id 6704154

您可以访问https://identity.sun.com/amserver/UI/Login?org=self_registered_users&goto=http://sunsolve.sun.com/show.do?target=home来validation上述信息。

虽然文档说applet只能打开与从Tomcat 5加载的主机的连接,但该声明不正确。 我有一个小程序,总是生成一个,“AccessControlException:访问被拒绝(java.net.SocketPermission 66.167.210:80连接,解析”,即使我已经给这个URL的套接字权限。我仍然试图解决这个问题我愿意接受任何建议。