Jboss5,通过@RunAs对安全EJB进行未经身份验证的调用

时间:2009-11-30 17:26:47

标签: jboss ejb-3.0 security runas securitydomain

我正在尝试从未经身份验证的源(连接到队列的消息驱动Bean)调用安全EJB上的方法。 MDB通过@EJB将一个EJB注入其中,这很好,但目标EJB有@SecurityDomain(“stuff”)和@RequireRole(“user”),并且在执行时会生成 huge 堆栈周围的痕迹:

17:14:03,275 ERROR [STDERR] java.lang.NullPointerException
17:14:03,276 ERROR [STDERR]  at org.jboss.ejb3.security.helpers.EJBContextHelper.getCallerPrincipal(EJBContextHelper.java:99)
17:14:03,276 ERROR [STDERR]  at org.jboss.ejb3.EJBContextImpl.getCallerPrincipal(EJBContextImpl.java:136)

我试图通过使用@SecurityDomain(“stuff”)@RunAs(“sysuser”)注释的临时EJB提供角色来解决这个问题,这个临时bean将原始目标EJB注入其中。我的理解是目标EJB将具有从“sysuser”角色下的临时bean调用的方法。然而,我仍然得到相同的堆栈跟踪,导致数据库回滚创建。

Path MDB - >如果没有这些堆栈跟踪,SecureEJB可能会在某些变体中出现吗?代理方法是否在正确的道路上取得成功,还是我需要添加到混合中?

干杯, 安迪

1 个答案:

答案 0 :(得分:1)

找到https://jira.jboss.org/jira/browse/EJBTHREE-1962,有一个修复程序。