JBoss EAP PolicyContext.getContext возвращает ноль
Я нахожусь в процессе обновления с JBoss EAP 6.4 до 7.1, но у меня возникают некоторые технические проблемы, связанные с управлением Предметом.
Некоторый контекст
Мое приложение представляет собой EAR-файл, содержащий:
- веб-модуль
- несколько модулей EJB, содержащих сессионные компоненты без сохранения состояния (SLSB)
- файл EAR, упаковывающий все вышеперечисленное
Аутентификация примитивна: учетные данные имени пользователя и пароля передаются на одну из SLSB, которая, в свою очередь, вызывает
LoginContext loginContext = new LoginContext(group.getLoginContextName(), callbackHandler);
loginContext.login();
Эта проблема
Мое приложение время от времени извлекает объекты в разных точках исполнения - из моего веб-приложения, из моих EJB-компонентов, просто где угодно. Я обычно использовал Subject.getSubject(...)
но это постоянно возвращает ноль все время.
Меня попросили использовать PolicyContext.getContext("javax.security.auth.Subject.container")
и он возвращает аутентифицированный субъект, но только там, где loginContext.login();
называется. В тот момент, когда я вызываю его из любого другого места (в том числе из другого экземпляра SLSB того же типа), субъект становится пустым!
Что мне не хватает??