我需要一个小程序来打开套接字并与正在监听的服务器通信 applet下载的本地主机(最终用户计算机)。
与我读到的关于applet安全性的内容相反,似乎甚至签署了applet 无法打开一个套接字到下载它们的不同主机(在同一台机器上运行完美)
我已经使用-selfcert对applet进行了认证,使用jarsigner对其进行了签名,而且,无论何时何地 它试图打开一个套接字到另一个主机,我得到:
Java.lang.Exception: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:9999 connect,resolve)
我甚至尝试更改Java策略文件,尽管使用签名的applet不需要这样做:
grant codeBase "http://applethost:8080/socket" {
permission java.security.AllPermission;
permission java.lang.RuntimePermission "usePolicy";
};
与sigend小程序有什么关系,它们能否与不同的主机联系?
答案 0 :(得分:1)
是的,当您加载applet时,如果您选择接受其证书并信任它,则会授予AllPermission,其中包括SocketPermission。我之前编写了一个已签名的applet,它连接的主机不是加载它的主机。您可以尝试暂时将您的java策略文件更改为
grant {
permission java.security.AllPermission;
};