在哪里放置java applet策略文件?

我正在开发一个人工智能项目,这是一个逻辑游戏,目标是两个用户连接到网络上充当管理员的服务器,然后逐个开始玩。

为了创建连接,我有一个服务器代码,它只是在localhost:8000上监听,并在客户端到达时为其分配团队值。 连接后,客户端在Admin的控制下进行移动。

问题是,当我尝试将我的代码用于浏览器时,它失败并出现以下错误:

java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8000 connect,resolve) 

即使我已经创建了自己的策略,首先只授予Socket访问权限到我的项目文件夹的代码库( file:///home/xxx/projects/- ),在它不起作用后,我授予所有代码库的所有权限。 我尝试将我的策略文件放在主目录和applet代码所在的同一目录中。

感谢任何提示,谢谢。

默认情况下,我认为它会在您的主目录中查找名为.java.policy的文件

您可以检查文件/lib/security/java.security以查看它的外观。 检查名为policy.url.n的密钥

您可以使用此命令行选项设置安全策略文件的位置

 -Djava.security.policy=policyfilepath 

java命令。

或者您甚至可以使用System.setProperty()过程设置此属性。

将策略文件放在JRE所在的位置。

例如,我的策略文件位于C:\ Program Files \ Java \ jre1.6.0_01 \ lib \ security

我强烈建议尊重同源政策。 在最好的情况下,安全影响不一定是显而易见的。 此外,具有标准权限的applet具有更好的可用性,并且应该更易于维护。

如果您授予特定JAR(代码库)的权限,则仅在从线程开始到方法调用的整个执行堆栈位于该代码库/保护域中时才有效。

如果您的方法是alibrary,并且您确定安全地访问操作,则可以使用Priratedged Block,它基本上确保在访问计算中不考虑调用块的堆栈部分。

特权块,如下所述:

http://docs.oracle.com/javase/6/docs/technotes/guides/security/doprivileged.html

问候贝恩德