Java: Как использовать AccessControllerContext? - PullRequest
0 голосов
/ 26 февраля 2012

Я пытаюсь спроектировать инфраструктуру плагинов, которая будет загружать плагины в песочнице, чтобы они могли выполнять рискованные действия только через мои интерфейсы плагинов.

Мне нужно выяснить, как использовать AccessControllerContext, чтобы увидеть, какой код вызываетметоды.

Документация не показывает способа восстановить исходный код или исходный класс.Как это можно сделать?

Можно ли установить контекст для всех классов, загружаемых из определенного загрузчика классов?

1 Ответ

1 голос
/ 26 февраля 2012

Вместо того, чтобы использовать AccessControlContext напрямую, вы должны использовать AccessController.checkPermission , который проверит для вас активный контекст безопасности. Чтобы контролировать, какие разрешения предоставляются классу, используйте ClassLoader.defineClass и передайте ProtectionDomain , содержащий PermissionCollection с соответствующим набором разрешений. Может быть полезно просмотреть Обзор основных понятий в документе Архитектура безопасности Java .

...