我试图禁止System.exit(int);
在某些罐子中调用。
这些 jar 将由外部团队开发并由我们的“容器”应用程序加载。
我的第一反应是使用 java 安全管理器:
-Djava.security.manager-Djava.security.debug=all
使用最简单的${user.home}/.java.policy
文件:
grant {};
虽然不能再调用比如System.getProperties()(因为我没有java.util.PropertyPermission),但是可以做一个System.exit(0)!!
该选项java.security.debug=all
提供以下控制台:
scl: getPerms ProtectionDomain (file: my-bin-path <no sign certificates>)
sun.misc.Launcher $ AppClassLoader @ 10385c1
<no principals>
java.security.Permissions @ 15b7986 (
(java.lang.RuntimePermission exitVM)
(java.io.FilePermission \my-bin-path\- read)
)
为什么 my-bin-path 中的所有类都java.lang.RuntimePermission exitVM
授予 ?????
谢谢