Keycloak 从MDB调用EJB时的权限问题
我们最近从JAAS切换到KeyClope。应用程序是带有EJB和MDB的JavaEE应用程序。 在WildFly中设置keydape登录模块,将用户从wen传播到EJB&它起作用了。 但在从MDB调用EJB时面临问题。收到消息时,MDB中存在匿名用户。因此,用户没有调用受以下保护的EJB的权限:Keycloak 从MDB调用EJB时的权限问题,keycloak,ejb-3.2,Keycloak,Ejb 3.2,我们最近从JAAS切换到KeyClope。应用程序是带有EJB和MDB的JavaEE应用程序。 在WildFly中设置keydape登录模块,将用户从wen传播到EJB&它起作用了。 但在从MDB调用EJB时面临问题。收到消息时,MDB中存在匿名用户。因此,用户没有调用受以下保护的EJB的权限: <s:security> <ejb-name>*</ejb-name> <s:missing-method-permissions-deny-a
<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>
此用户具有所需的权限。由于现在移动到keydape,这个JAAS登录代码将无法工作。从MDB调用EJB时,防止权限问题的选项是什么?您使用
keydape登录模块是什么意思?哪个适配器?如何配置它?您能从MDB检索用户会话吗?它是wildfly适配器。keydape建议在conf中添加一个名为“keydape”的登录模块,以将用户从web层传播到ejb。在MDB中,用户是匿名的。您希望以应用程序用户的身份登录,并以该用户的身份从那里访问ejb。
loginContext = new LoginContext("ldap", new CallbackHandler() {
@Override
public void handle(Callback[] callbacks) {
...
}
});
loginContext.login();
//Invoke EJB now as logged in user