Можно ли включить диспетчер безопасности Java по умолчанию на уровне установки?

Согласно пониманию, можно манипулировать общим понятием ключевого слова final, используя отражение.

Также возможно предотвратить то же самое с помощью менеджера безопасности.

Можно ли включить менеджера безопасности по умолчанию (на уровне установки jdk)?

Использованная литература :

Обновление 1:

Учитывая, что его необходимо включить для работы, маловероятно, что это возможно.

Самое близкое, что я получил, это поместить System.setSecurityManager(new SecurityManager()) в статический блок класса, связать его как банку и поместить в «jre/lib/ext», только чтобы обнаружить, что он не загружен по умолчанию, и нам все еще нужно использовать класс .forName.

Так что даже в противном случае единственными вариантами являются либо использование флага -Djava.security.manager, либо добавление программно.


person Ravindra HV    schedule 05.03.2016    source источник


Ответы (1)


Вы можете установить свойства системы Java по умолчанию, используя переменную среды _JAVA_OPTIONS, поэтому вы можете установить _JAVA_OPTIONS="-Djava.security.manager" в своей системе, и это гарантирует, что все процессы Java будут работать с включенным менеджером безопасности.

Конечно, эта переменная может быть перезаписана, поэтому она может быть недостаточно безопасной в зависимости от вашей среды.

Если вы пытаетесь гарантировать, что последний член определенного класса не может быть переопределен с помощью отражения, другой вариант — поместить в этот класс статический блок инициализации, который проверяет, установлен ли менеджер безопасности, и выдает SecurityException, если он нет.

person alphaloop    schedule 30.06.2016
comment
Полагаю так. То, что я пытаюсь сделать, это избежать необходимости полагаться на программный подход, поскольку он зависит от загрузки самого класса, что не обязательно гарантируется. Вот почему я ищу вариант, который может быть гарантирован и применим ко всей JVM и, желательно, необратим (то есть менеджер безопасности не должен быть удален после его установки). Спасибо за ваш ответ. - person Ravindra HV; 01.07.2016