Мне нужно вызвать некоторый полунадежный Java-код и вы хотите отключить возможность использования отражения на протяжении всего выполнения этого кода.Отключить отражение Java для текущего потока
try{
// disable reflection somehow
someObject.method();
}
finally{
// enable reflection again
}
Можно ли это сделать с помощью SecurityManager, и если да, то каким образом?
Разъяснение/Контекст: Это последующая деятельность по сравнению с another question об ограничении пакетов, которые могут быть вызваны из JavaScript/Rhino. Принятый ответ ссылается на запись в блоге о том, как это сделать, и для этого требуется два шага, первый из которых использует Rhino API (ClassShutter), второй - отключение отражения и Class.forName(). Я думал, что могу сделать этот второй шаг более чисто, используя SecurityManager (узнав о SecurityManager, который, как было указано, является сложным зверьком, на этом пути).
Чтобы подвести итог, я хочу (из кода, а не установочного файла) отключить Class.forName() и любой доступ ко всему пакету отражения.
Я не уверен, о том, как работает SecurityManager, но проверить этот вопрос: [HTTP : //stackoverflow.com/questions/762459/how-to-disable-java-security-manager] (http://stackoverflow.com/questions/762459/how-to-disable-java-security-manager) –