Как установить SecurityManager для этой темы, а не для системы? - PullRequest
1 голос
/ 17 ноября 2008

У меня есть программа, которая запускает базовый RMISecurityManager во всех его потоках. Но я бы хотел больше контролировать несколько потоков и установить другой SecurityManager специально для этих потоков.

Как я могу это сделать? ... если это возможно!?

спасибо заранее.

Редактировать: я нашел свое решение. Подробнее см. Здесь .

Ответы [ 2 ]

4 голосов
/ 17 ноября 2008

Это не имеет большого смысла. Что если код (вредоносный или нет) вызывает выполнение в другом потоке? Это может даже произойти в библиотеке Java с переданным контекстом безопасности (который может использовать java.security.AccessController.getContext / doPrivileged).

Апплеты используют слегка сложную систему, включающую ThreadGroup с, но я бы не рекомендовал это. JAAS позволяет добавлять Subject к AccessControlContext, но лично я бы посоветовал не использовать этот стиль программирования.

Дайте загруженному коду (если есть) соответствующие разрешения и не дайте чувствительным объектам код, которому вы не доверяете.

2 голосов
/ 17 ноября 2008

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

Или, может быть, вы хотите реализовать SecurityManager , используя шаблон стратегии.

Ус

...