Как изменить контекст JAAS от перехватчика?

Я хочу спросить, возможно ли изменить контекст Java EE JAAS (назначенные роли пользователей) из перехватчика EJB?

У меня есть несколько сеансовых компонентов EJB, которые используют метод isUserInRole() для проверки авторизации. С другой стороны, мое приложение управляет профилями пользователей с некоторой специальной информацией, которую нельзя сопоставить с ролями/группами JAAS, управляемыми через область приложения Java EE, поскольку они создаются во время выполнения.

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

Таким образом, результатом будет новое определение динамической роли, назначенное учетным данным, которые могут быть запрошены моими сеансовыми компонентами. Но эти роли не будут жестко запрограммированы в ejb (@RolesAllowd) или в дескрипторах ejb-jar.xml или sun-ejb-jar.xml.

Спасибо за любую помощь в этом вопросе.


person Ralph    schedule 28.07.2012    source источник


Ответы (1)


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

В Java EE это можно сделать с помощью JASPI API, основанного на JAAS.

Почти каждый сервер приложений также имеет собственный API для этого, большинство из них также основано на JAAS.

person Arjan Tijms    schedule 21.08.2012