【问题标题】:Where to place java applet policy file?java小程序策略文件放在哪里?
【发布时间】:2011-02-06 11:02:52
【问题描述】:

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

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

问题是,当我尝试让我的代码在浏览器中运行时,它会失败并出现以下错误:

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

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

感谢任何提示,谢谢。

【问题讨论】:

  • 当我按如下方式从控制台启动服务器后尝试运行我的客户端代码时,我能够识别我自己的位于我的主目录中的策略文件:appletviewer -J-Djava.security。 policy=mypolicy.policy file:///home/xxx/NetBeansProjects/project/src/index.html 但是当我尝试从 IDE 运行时,它失败了:s
  • 对小程序 jar 进行签名可能更容易管理。省去您在希望它运行的每个盒子上安装策略文件的麻烦。

标签: java applet policy


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    您可以检查文件 /lib/security/java.security 以查看它的位置。 检查名为 policy.url.n 的键

    【讨论】:

    • 在检查 /lib/security/java.security 后将我自己创建的策略文件重命名为 .java.policy 以找出 java 在哪里查找策略文件,它起作用了。感谢every1 的提示。
    • 如果您的问题得到解决,请点击对您有帮助的评论(左侧)旁边的勾号。
    • 这个路径/lib/security/java.security的windows等价物是什么?
    • 查看 JRE 的安装目录,通常在 Program Files 中
    【解决方案3】:

    我强烈建议尊重同源政策。在最好的情况下,安全隐患并不一定很明显。此外,具有标准权限的小程序具有更好的可用性并且应该更易于维护。

    【讨论】:

      【解决方案4】:

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

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

      特权块,如下所述:

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

      问候 伯恩德

      【讨论】:

        【解决方案5】:

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

        -Djava.security.policy=policyfilepath
        

        使用java 命令。

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

        【讨论】:

        • 这如何适用于小程序?此外,我怀疑在JVM启动后设置系统属性是否有效。
        猜你喜欢
        • 1970-01-01
        • 2015-08-30
        • 1970-01-01
        • 2012-02-08
        • 2014-11-22
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多