Jboss5, неаутентифицированные вызовы в защищенный EJB через @RunAs - PullRequest
0 голосов
/ 30 ноября 2009

Я пытаюсь вызвать методы в защищенном EJB-компоненте из неаутентифицированного источника (компонент, управляемый сообщениями, подключенный к очереди). MDB имеет EJB, внедренный в него через @EJB, что нормально, но целевой EJB имеет @SecurityDomain ("stuff") и @RequireRole ("user"), и при выполнении генерирует огромные трассировки стека вокруг:

17:14:03,275 ERROR [STDERR] java.lang.NullPointerException
17:14:03,276 ERROR [STDERR]  at org.jboss.ejb3.security.helpers.EJBContextHelper.getCallerPrincipal(EJBContextHelper.java:99)
17:14:03,276 ERROR [STDERR]  at org.jboss.ejb3.EJBContextImpl.getCallerPrincipal(EJBContextImpl.java:136)

Я попытался исправить это, предоставив роль через промежуточный EJB-компонент, аннотированный @SecurityDomain ("stuff") @RunAs ("sysuser"), в этот промежуточный EJB-компонент вставлен исходный целевой EJB-компонент. Насколько я понимаю, целевой EJB будет иметь методы, вызываемые из промежуточного компонента под ролью "sysuser". Тем не менее, я все еще получаю те же трассировки стека, что приводит к откату базы данных при создании.

Возможен ли путь MDB -> SecureEJB в каком-то другом варианте без этих следов стека? Подход прокси на правильном пути к успеху, или я должен добавить что-то в микс?

Ура, Andy

1 Ответ

1 голос
/ 01 декабря 2009

Найден как https://jira.jboss.org/jira/browse/EJBTHREE-1962, Исправление.

...