Проблема с разрешением вызова EJB из MDB

Недавно мы перешли с JAAS на Keycloak. Приложение - это приложение JavaEE с EJB и MDB. Установите модуль входа в keycloak в WildFly, чтобы распространять пользователя от wen к EJB, и это сработало. Но возникает проблема, когда EJB вызывается из MDB. При получении сообщения в MDB есть пользователь anonymoius. Так что у этого пользователя нет разрешения вызывать EJB, защищенный:

<s:security>
    <ejb-name>*</ejb-name>
    <s:missing-method-permissions-deny-access>false</s:missing-method-permissions-deny-access>
    <s:security-domain>keycloak</s:security-domain>
</s:security>

В версии JAAS у нас есть программный вход в систему с использованием выделенного пользователя mdb.

loginContext = new LoginContext("ldap", new CallbackHandler() {
     @Override
    public void handle(Callback[] callbacks) {
     ...
     }
 });
 loginContext.login();
 //Invoke EJB now as logged in user

Это пользователь с необходимым разрешением. С тех пор, как перешел на Keycloak, этот код входа в систему JAAS не будет работать. Как можно запретить выдачу разрешений при вызове EJB из MDB?

0 ответов

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