2014-12-03 3 views
0

Наше приложение использует JSF 2.2 и использует в качестве сервера стеклянную рыбку 4. Мне нужно добавить какой-то объект в модуль входа во время аутентификации пользователя, поэтому в веб-приложении управляемый компонент может получить этот объект.Получить объект добавить в модуль входа JAAS из JSF managedbean

В LoginModule я сделал следующее (если это не так, пожалуйста, сообщите мне правильный способ сделать):

_subject.getPublicCredentials().add(someObject); 

Но как я могу получить его в ManagedBean. Любая помощь будет высоко ценится.

+0

насчет использования объема сеанса? –

ответ

0

Это часть спецификации JSR-115 для разрешения на использование JavaTM для контейнеров. Смотрите раздел 4.6.1.1 контейнера Тема политики Контекстное Handler:

4.6.1.1 Контейнер Предмет политики Контекст обработчика

Все EJB и сервлетов контейнеры должны зарегистрировать PolicyContextHandler которого метод getContext возвращает javax .security.auth.Subject при вызове с ключом "javax.security.auth.Subject.container".

В приложении вы можете получить объект с помощью следующих команд:

import javax.security.jacc.PolicyContext; 
Subject subject = (Subject) PolicyContext.getContext("javax.security.auth.Subject.container"); 

Примечание: класс должен быть добавлен в get[Private|Public]Credentials() (без аргументов). get[Public|Private]Credentials(Class<T>.class) генерирует копию содержимого, «фильтруя» классы, являющиеся экземплярами аргумента, служащие только для извлечения сохраненных классов.

Примечание: Не проверено на JBoss, но я считаю, что оно применяется аналогичным образом на основе JBoss Doc.


Ссылки:

Смежные вопросы