我们最近从JAAS切换到了Keycloak。应用程序是带有EJB和Java的JavaEE应用程序。多边开发银行。 在WildFly中设置keycloak登录模块,将用户从wen传播到EJB&有效。 但是当从MDB调用EJB时面临问题。收到消息时,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登录代码将无法正常工作。在从MDB调用EJB时阻止权限问题的选项是什么?