【问题标题】:Java: What are the various available security settings for appletsJava:小程序有哪些可用的安全设置
【发布时间】:2011-01-30 07:55:18
【问题描述】:

我有一个小程序在尝试与服务器通信(在本地主机上运行)时抛出此异常。此问题仅限于 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 提供了原因(发布的一个安全补丁禁止小程序连接到localhost)。牢记这一点,我如何授予小程序安全设置,以便它确实可以在我的机器上运行。还有为什么它可以在其他机器上按原样运行,而我的机器不行?

【问题讨论】:

  • 您是在尝试 localhost 还是 127.0.0.1?我相信我在我以前的项目中使用过 localhost,它工作正常
  • @tim_yates 是的,我使用的是“localhost”,它在内部解析为127.0.0.1。但是如果这就是你的意思,“127.0.0.1”实际上并没有出现在我的代码中。
  • 您是否尝试过签署您的小程序 JAR 文件并查看会发生什么?
  • 如果您的小程序代码是从 localhost 加载的,应该没有问题。没有必要为这样的事情删除客户端的安全性。
  • @bguiz 是否涉及任何 JavaScript?那有不同的规则。

标签: java security sockets permissions applet


【解决方案1】:

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

没有解决此问题的方法

4.解决方法

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

我的建议如下:

规定:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2014-01-24
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多