Java:applet的各种可用安全设置是什么

时间:2010-03-22 12:19:35

标签: java security sockets permissions applet

我有一个applet,在尝试与服务器通信时(在localhost上运行)会抛出此异常。此问题仅限于Applet - POJO客户端能够毫无问题地与完全相同的服务器进行通信。

Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: access denied (java.net
.SocketPermission 127.0.0.1:9999 connect,resolve)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)

我的applet.policy文件的内容是:

grant {
permission java.security.AllPermission;
};

我的问题是我需要修改安全设置的其他地方,以便为Applet授予更多安全设置?

谢谢。


编辑:进一步的调查让我发现这个问题只发生在某些机器上 - 而不是其他机器上。因此,它可能是导致此问题的机器级别(全局)设置,而不是特定于应用程序的设置,例如applet.policy文件中的设置。


编辑:Another SO question: Socket connection to originating server of an unsigned Java applet
这似乎描述了完全相同的问题,Tom Hawtin - tackline 's answer提供了原因(一个安全补丁发布,禁止applet连接到localhost)。考虑到这一点,我如何授予applet安全设置,以便确实可以在我的机器上运行。另外为什么它在其他机器上运行但不是我的?

1 个答案:

答案 0 :(得分:1)

看到这个:http://sunsolve.sun.com/search/document.do?assetkey=1-66-246387-1,很明显Applet从localhost运行(没有部署到Web服务器)无法访问localhost。

此问题没有解决方法

  

<强> 4。解决方法

     

此问题没有解决方法。   请参阅决议部分   下方。

我的建议如下:

它规定:

  

验证签名的用户可以   授予您的JAR捆绑软件   安全特权,它不会   通常有。

  • 从Web服务器(例如Tomcat)运行applet并通过浏览器在本地访问它。