JBoss 4 でホストされているリモート EJB 3.0 を呼び出す必要があるアプリケーションを構築しており、プリンシパルを WebSphere から JBoss に伝達する必要があります。カスタム ログイン モジュールとカスタム プリンシパルを作成し、それらを WebSphere に登録しました。
WAS 環境 (Web または EJB レイヤー) の任意のレイヤーから、LoginModule を使用して認証したプリンシパルを回復できるため、WebSphere から次のことができます。
Principal principal = context.getCallerPrincipal();
String name = principal.getName(); ....
これにより、認証されたプリンシパルとそのプロパティが適切に返されます。
JBoss でホストされているリモート EJB に WebSphere から正常にアクセスすることもできますが、この場合の問題は、getCallerPrincipal() を呼び出して JBoss からプリンシパルを回復しようとするたびに、JBoss コンテナーが例外をスローすることです。
[10/2/12 12:56:37:594 BRT] 0000007f BusinessExcep E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "remoteJBossEJBCall" on bean "BeanId(JBossRemoteEJBCall#ejbModule.jar#WAS_EJB, null)". Exception data: javax.ejb.EJBException: java.lang.IllegalStateException: No valid security context for the caller identity; nested exception is: java.lang.IllegalStateException: No valid security context for the caller identity
....
セキュリティー属性を伝搬するように WebSphere グローバル・セキュリティーを既に設定しましたが、これでも問題は解決しませんでした。
以下に記載されているすべての手順を実行しました。
しかし、まだ機能しません。