Проблема с разрешением вызова EJB из MDB - PullRequest
0 голосов
/ 01 июня 2018

Мы недавно перешли с 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?

...