在openjdk中,安全策略没有生效



在redhat openjdk:1.8.0中,jvm java.policy和custom.policy文件的java.version在活动进程上是有效的

我已经将java进程配置为使用java安全管理器,它使用Apache服务器来运行该进程。因此,Apache客户端在默认和/或自定义策略文件中查找"java.version"读取权限。

我已经包含了就绪属性权限,但我得到了奇怪的AccessControlException。

我看到的例外情况是:

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.version" "read")

我在jvm/secruity/java.policy 中的Property权限条目中有正确的权限

permission java.util.PropertyPermission "java.version", "read";

在custom.policy(-Djava.security.manager-Djava.security.policy=custom.policy(中,文件路径完全限定,我只是为了更好地理解而缩短了(:

permission java.util.PropertyPermission "java.version", "read";

期望运行java进程时没有问题,但这并没有发生。

编辑1:

我还尝试使用以下行强制执行所有权限:

grant{ permission java.security.AllPermission; };

但它似乎仍然不起作用。我还在设置策略文件时尝试使用"==",这意味着`如果您使用

java -Djava.security.manager -Djava.security.policy==someURL SomeApp

(注意双等于(则只使用指定的策略文件;安全属性文件中指示的所有内容都将被忽略

根据jdk 8文档

非常感谢您的帮助。

在我看来,该策略没有生效。如果你安装了多个JDK版本,你确定你已经修改了与你运行的同一版本的默认策略吗?我会首先授予AllPermissions,以确保策略有效,然后关注权限行本身。

相关内容

  • 没有找到相关文章

最新更新