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, похожий на тот, который я упомянул, который я могу реализовать в автономном приложении? Я искал некоторое время, но пока у меня ничего не получалось. Надеюсь, кто-нибудь может мне помочь. Спасибо!