Существует ли законный способ добавить / удалить разрешения для политики безопасности Java во время выполнения?
Javadoc говорит, что Policy.refresh() для политики на основе файлов перечитает файл. Таким образом, можно изменить общесистемную политику во время выполнения, отредактировав файл политики и вызвав Policy.refresh()
Policy.refresh()
Можно настроить реализацию собственной Политики, используя метод Policy.setPolicy(). Например, см. JAAS в действии книга.
Policy.setPolicy()
Из 1,4 динамических ProtectionDomain с можно делегировать в Policy. Динамическое удаление разрешений из кода вряд ли имеет смысл. Также могут быть полезны две формы аргумента AccessController.doPrivileged.
ProtectionDomain
Policy
AccessController.doPrivileged