Я занимаюсь разработкой системы, которая позволяет разработчикам загружать пользовательские скрипты groovy и шаблоны бесплатных маркеров.
Я могу обеспечить определенный уровень безопасности на очень высоком уровне с помощью инфраструктуры безопасности Java по умолчанию - то есть запретить доступ к коду к файловой системе или сети, однако мне нужно ограничить доступ к определенным методам.
Мой план состоял в том, чтобы изменить среды выполнения Groovy и Freemarker для чтения аннотаций, которые бы включали в белый или определенный список определенные методы, однако это заставило бы меня поддерживать раздвоенную версию их кода, что нежелательно.
Все, что мне по сути нужно, - это предотвращать выполнение определенных методов при вызове из Groovy или Freemarker. Я рассмотрел хак, который посмотрел бы на стек вызовов, но это был бы огромный удар по скорости (и он довольно грязный).
У кого-нибудь есть другие идеи для реализации этого?