0

EJB 3.0 を使用し、そのメソッドを Web サービスとして公開するアプリケーションに取り組んでいます。

SiteMinder は、認証を提供するために使用されます。ログインに成功すると、リクエスト ヘッダーにはユーザーのログイン ID が含まれます。

request.getHeader("sm_user");

この情報は WebService エンドポイントで利用でき、サーブレット フィルターでも読み取ることができます。

しかし、パラメータとして明示的に渡さずに、EJB レイヤーでこの情報を取得するにはどうすればよいでしょうか? インターセプターの助けを借りて、プリンシパル オブジェクトを使用して資格情報を取得/設定するにはどうすればよいですか?

貴重な情報を提供してください。

4

2 に答える 2

0

EJB3.0 では、Web アプリケーションと EJB は異なるコンテナーで実行され、EJB は Web コンテナー データにアクセスできません。この情報を渡す必要があります。

于 2011-01-18T17:19:38.100 に答える
0

EJB で ctx.getCallerPrincipal().getName() 呼び出しを介して ID が適切に伝搬されるように、アプリケーション サーバーに SiteMinder 用のアプリケーション サーバー エージェントをインストールする必要があると思います。

于 2011-07-05T23:18:28.883 に答える