В redhat-openjdk: 1.8.0, jvm java.policy и java.version файла custom.policy действуют в активном процессе.
Я настроил процесс java для использования диспетчера безопасности java, и он использует сервер Apache для запуска процесса. Таким образом, клиент Apache ищет разрешение на чтение «java.version» в файле политики по умолчанию и/или пользовательской политике.
Я включил готовое разрешение свойства, но получаю странное исключение 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
(обратите внимание на двойное равно), то будет использоваться только указанный файл политики; все указанные в файле свойств безопасности будут игнорироваться.`
Любая помощь горячо приветствуется.