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