System.exit(int);
一部のjarファイルでの呼び出しを禁止しようとしています。
これらの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
?????
ありがとう