在 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
(注意双等号)然后只使用指定的策略文件;安全属性文件中指示的所有内容都将被忽略。`
任何帮助深表感谢。