0

好的,所以我有一个小程序,我正试图嵌入到 HTML 页面中,它正在抛出:

AccessControlException: access denied (java.net.SocketPermission someTarget connect, resolve)

这可以; 我知道解决这个问题的方法是:

grant {
   permission java.net.SocketPermission "someTarget", "connect, resolve";
};

或者

SocketPermission p1= new SocketPermission("someTarget", "connect,resolve");

我想知道的是:我需要这两件事中的哪一个,我应该把它放在我的代码中的什么地方?

4

3 回答 3

3

我建议连接回下载小程序的同一主机,这是 Java 安全管理器允许的。主机应该完全一样。编辑权限策略文件会让您无处可去,因为您必须在每台您希望运行小程序的计算机上执行此操作

于 2012-04-10T06:30:02.677 回答
1

最简单的解决方法是签署小程序。

于 2012-04-10T05:22:17.520 回答
0

正如 EJP 所提到的,获得信任的方法是对代码进行数字签名。有关更多详细信息,请参阅签署和验证 JAR 文件

将策略文件部署到最终用户机器上,以便从 Internet 上下载一个小程序是不切实际的。当涉及到一个由你控制的机器网络时,问题就变成了——为什么不直接使用 JWS 应用程序。?JWS 应用程序。仍然需要进行数字签名(或使用策略文件),但也更容易开发和部署。

请注意,“获得信任”不需要对代码进行任何更改。相反,代码需要由您签名,并在出现提示时得到最终用户的信任。唯一想到的“问题”是,如果使用 JS 调用 applet 方法,那么除非您对代码进行一些调整,否则它将变得不受信任。

于 2012-04-10T06:32:45.403 回答