Multi-Tenant Security Manager в Java

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

2 ответа

Это звучит немного страшно. Если это вообще возможно, я бы использовал разные виртуальные машины для каждого арендатора. Если вы не можете этого сделать, вы, вероятно, захотите использовать Policy.setPolicy. Вам потребуется индивидуальная реализация Policy, которая в основном является оболочкой для нескольких политик. Вероятно, придется обратиться к некоторой переменной ThreadLocal, чтобы увидеть, какой пользовательский контекст применяется к текущему потоку, а затем делегировать его соответствующей реализации политики. Чтобы прочитать файлы политики, вам, вероятно, придется обратиться к поставщику безопасности Sun напрямую. Не забудьте запретить рефлексию по умолчанию, иначе логику вашей политики будет тривиально обойти.

Попробуйте взглянуть на этот пост в блоге. Дженс Нордал рассказывает, как создать "песочницу" для ненадежных плагинов, что звучит как то, что вам нужно.

Ps. Извините за то, что столкнулся с этим постом, но он один из самых высоких в Google.

Другие вопросы по тегам