Java:小程序有哪些可用的安全设置

标签 java security sockets permissions applet

我有一个小程序在尝试与服务器(在本地主机上运行)通信时抛出此异常。此问题仅限于 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)。考虑到这一点,我如何授予小程序安全设置,以便它确实可以在我的计算机上运行。另外,为什么它在其他机器上按原样运行,但在我的机器上却不行?

最佳答案

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

如所示,此问题没有解决方法

4. Workaround

There is no workaround for this issue. Please see the Resolution section below.

我的建议如下:

规定:

Users who verify your signature can grant your JAR-bundled software security privileges that it wouldn't ordinarily have.

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

关于Java:小程序有哪些可用的安全设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492100/

相关文章:

android - 用于通过单跳 Wi-Fi 网络从 Android 设备上传大型二进制文件 (50-200 MB) 的 HTTP 与 Vanilla 套接字

c - 在客户端 C 中多路复用 stdin 和 socket

java - 选择什么 Java Web 框架?

java - 如何计算以字符串形式给出的数学表达式?

java - 在 Java 应用程序中使用安全数据库

php - 即使密码是服务器生成的,也要散列密码?

python - 套接字错误 : [Errno 10022] An invalid argument was supplied

java - 来自 null 变量的 NullPointerException 错误。当 ListView 变空时

java - 求 3x3 矩阵的辅因子和行列式

javascript - Esprima 检测全局范围访问