1

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 グローバル・セキュリティーを既に設定しましたが、これでも問題は解決しませんでした。

WebSphere アウトバウンド・セキュリティー伝搬

以下に記載されているすべての手順を実行しました。

http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.nd.multiplatform.doc/ae/tsec_enablesecattprop.html

しかし、まだ機能しません。

4

0 に答える 0