sessionContext.getCallerPrincipal().getName() всегда возвращает "анонимный"

Я работаю над веб-проектом, который содержит компоненты EJB и развернут в JBoss EAP 7.0.7. Некоторые из EJB-компонентов вызываются из отдельного клиентского приложения.

Проблема в том, что хотя аутентификация, кажется, работает нормально, принципал не распространяется на уровень EJB, поэтому, когда я вызываю sessionContext.getCallerPrincipal(). GetName(), он просто возвращает "анонимный".

Кажется, что моя конфигурация работает нормально. Я установил домен безопасности в мои standalone.xml и jboss-web.xml, затем я аннотировал свои EJB для использования настроенного домена безопасности.

Когда я вызываю EJB из веб-приложения, оно прекрасно работает. Принципал распространяется и устанавливается вошедшим в систему пользователем (я использовал API HttpServletRequest.login).

Итак, как мне распространить принципал на слой EJB так же, как он распространяется с использованием HttpServletRequest.login? Есть ли API, похожий на тот, который я упомянул, который я могу реализовать в автономном приложении? Я искал некоторое время, но пока у меня ничего не получалось. Надеюсь, кто-нибудь может мне помочь. Спасибо!

0 ответов

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