我需要一个小程序来打开套接字并与侦听的服务器进行通信
小程序下载到的本地主机(最终用户计算机)。
与我读到的有关小程序安全性的内容相反,似乎甚至签名的小程序
无法打开到下载它们的不同主机的套接字(在同一台机器上它工作得很好)
我已经使用 -selfcert 认证了该小程序,使用 jarsigner 对其进行了签名,并且无论何时
它尝试打开一个到不同主机的套接字,我得到:
Java.lang.Exception: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:9999 connect,resolve)
我什至尝试更改 Java 策略文件,尽管使用签名的小程序不需要这样做:
grant codeBase "http://applethost:8080/socket" {
permission java.security.AllPermission;
permission java.lang.RuntimePermission "usePolicy";
};
签名的小程序有什么用,它们可以连接到不同的主机吗?
是的,当你加载你的小程序时,如果你选择接受它的证书并信任它,它就会被授予AllPermission,其中包括SocketPermission。我之前编写了一个签名的小程序,它连接到加载它的主机以外的主机。您可以尝试暂时更改您的 java 策略文件以仅具有
grant {
permission java.security.AllPermission;
};
- 查看您的策略文件,看看它是否定义了任何其他policy.url 位置,也许它们会产生干扰。
- 检查您的浏览器设置是否有 JavaScript。
- 确保您接受该小程序的证书并将其安装到您的站点证书列表中。
- 确保您拥有的 grant codeBase 行与小程序清单中的代码库相同。
- 在尝试连接之前,您可以尝试打印出您的小程序拥有的权限列表。
- 您可以尝试以编程方式从小程序内授予所有权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)