在redhat-openjdk:1.8.0中,jvm java.policy和custom.policy文件的java.version在活动过程中是有效的
我已经将java进程配置为使用java安全管理器,它使用Apache服务器运行该进程。因此,Apache在默认和/或自定义策略文件中查找"java.version“读取权限。
我已经包含了ready权限,但是我得到了奇怪的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(注意双等于)然后只使用指定的策略文件;安全属性文件中指示的所有策略文件都将被忽略。
任何帮助都是非常感谢的。
发布于 2019-11-05 19:06:56
在我看来,这项政策并没有生效。如果您安装了多个JDK版本,您确定您已经为正在运行的相同版本修改了默认策略吗?我首先授予AllPermissions以确保策略是有效的,然后关注权限行本身。
https://stackoverflow.com/questions/58602793
复制相似问题