Я всегда думал, что SecurityManagers включал метод проверки, который вызывался при попытке Method / Field.setAccessible (), который включал в себя Разрешение, включающее имя метода / поля, включающего в себя класс, имя члена и т. Д.это шок.
У меня была идея, что можно было бы решить эту проблему с помощью ClassLoader, который переписал такие попытки, как
Method.setAccessible()
до
MethodHelper.setAccessible( Method );
Метод MethodHelperмог бы установить локальный поток, на который смотрел бы мой менеджер безопасности, чтобы получить фактический метод.
- Это, конечно, имеет некоторые потенциальные недостатки, поскольку требует переписывания файлов классов, что, конечно, может произойти только для не системных классов.
Тот же самый подход может быть использован для извлеченияметоды, поля и т. д., которые сегодня делают член доступным для SecurityManager в любой форме.
Существуют ли какие-либо библиотеки FOSS, которые упаковывают вышеуказанную функциональность?