【问题标题】:In openjdk, security policies are not taking effect在openjdk中,安全策略没有生效
【发布时间】:2019-10-29 07:13:09
【问题描述】:

在redhat-openjdk:1.8.0中,jvm java.policy和custom.policy文件的java.version对activeprocess生效

我已将 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 中的属性权限条目

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

(注意双等号)然后只使用指定的策略文件;安全属性文件中指示的所有内容都将被忽略。`

As per jdk 8 doc

非常感谢任何帮助。

【问题讨论】:

  • 您找到解决方案了吗?从 Oracle 迁移到 OpenJDK 后,我们遇到了同样的问题,并且策略文件在我们的系统中至关重要。

标签: java java-8 securitymanager java-security-manager redhat-openjdk


【解决方案1】:

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

【讨论】:

  • 是的 Martin,我已经确保所有策略条目都在打开的 JDK/jre/lib/security/java.policy 文件中,并且无论如何我们都有自定义策略文件作为系统属性传递来使用。不过,我还没有尝试过授予 AllPermissions。我怎样才能授予 AllPermissions?
  • 如建议的那样,我尝试使用以下行执行所有权限:grant{ permission java.security.AllPermission; }; 但似乎它仍然无法正常工作。我还尝试在设置策略文件时使用 '==',这意味着 If you use java -Djava.security.manager -Djava.security.policy==someURL SomeApp (note the double equals) then just the specified policy file will be used; all the ones indicated in the security properties file will be ignored. 非常感谢任何帮助。
猜你喜欢
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-06
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 2021-01-06
  • 2016-06-28
相关资源
最近更新 更多