2011-01-12 9 views
0

私はEJB 3.0を使用するアプリケーションで作業しており、そのメソッドをWebサービスとして公開しています。SiteMinderとEJB 3.0 - ユーザーのログインIDを読み取る

SiteMinderは、認証を提供するために使用されます。ログイン成功後、要求ヘッダーは、Webサービスのエンドポイントで

request.getHeader("sm_user"); 

この情報が利用可能であることによって読み取ることができ、また、サーブレット・フィルターで読み取ることができ、ユーザーのログインIDを含むであろう。

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

貴重な情報を入力してください。

答えて

0

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

0

あなたのアプリケーションサーバにSiteMinder用のApplication Serverエージェントをインストールして、IDがEJBのctx.getCallerPrincipal()。getName()コールによって正しく伝播されるようにする必要があると思います。