0

認証されていないソース (キューに接続されたメッセージ駆動型 Bean) から保護された EJB のメソッドを呼び出そうとしています。MDB には @EJB を介して EJB が注入されていますが、これは問題ありませんが、ターゲット EJB には @SecurityDomain("stuff") と @RequireRole("user") があり、実行時に巨大なスタック トレースが生成されます。

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

@SecurityDomain("stuff") @RunAs("sysuser") のアノテーションが付けられた仮の EJB を介してロールを提供することで、これを修正しようとしました。この仮の Bean には、元のターゲット EJB が注入されています。私の理解では、ターゲット EJB は「sysuser」のロールの下で暫定 Bean から呼び出されるメソッドを持っているということです。それでも、同じスタック トレースが得られるため、作成のデータベース ロールバックが発生します。

パス MDB -> SecureEJB は、これらのスタック トレースなしで、他のいくつかのバリエーションで可能ですか? プロキシ アプローチは成功への正しい道を進んでいますか?それとも、何か追加する必要があるものはありますか?

乾杯、アンディ

4

1 に答える 1

1

https://jira.jboss.org/jira/browse/EJBTHREE-1962として検出され、修正があります。

于 2009-12-01T10:58:13.327 に答える