Я пытаюсь запретить вызов System.exit(int);
в некоторых банках.
Эти банки будут разработаны внешними командами и загружены нашим "контейнерным" приложением.
Мой первый рефлекс заключается в использовании диспетчера безопасности 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-пути имеют java.lang.RuntimePermission exitVM
, предоставленные
спасибо