2009-04-01 2 views
0

私はさまざまなセキュリティロールを持つJ2EEサーバー上にさまざまなEJBを持っています。クライアントから、現在のユーザが使用することが許可されているEJBを検出できますか?

ここで、Java Swingクライアントアプリケーションから、ユーザーをサーバーにログオンすると、実際にそれらを作成したり呼び出すことなく、ユーザーがアクセスできるこれらのEJBを発見したいと思います。

私がこれをやりたい理由は、利用可能なEJBに応じてユーザーインターフェイスを調整することです。例えば

、「AdministerMetadata」EJBは、現在のユーザーが使用可能な場合、私は、メタデータを管理するためのメニューオプションを表示するなど

私が知られている、EJBの定義済みリストから照会することが可能ですクライアント内では、私はそれが完全に動的である必要はありません。

私はこのアクセス情報を返すだけの特殊なEJBを作成したくないので、メソッドを呼び出して例外をキャッチして検出を試みることを避けたいと考えています。

私はJBoss上でソリューションを使用する予定ですが、可能であれば標準的なソリューションを選ぶことをお勧めします。

これは可能ですか?もしそうなら、どのように?

答えて

1

私が知る限り、J2EEにはクライアント側でこの情報を提供するものは何もありません。サーバー側でさえ、EJBContextは、呼び出し元のプリンシパルと呼び出し元のプリンシパル(ログイン名など)の役割だけを提供します。

クライアントサイドで問い合わせることができ、現在のユーザが所有するロールをクライアントに伝えるためにサーバー側のEJBContextを検査する余分なセッションBeanを持つ以外の方法はありません。

+0

ありがとうございます!私は "EJBを作成して例外を処理する"という方法に頼ることができると思います(EJBにアクセスできるかどうかを検出する方法ですが(メソッド固有のアクセス制限については何も教えてくれません) – Brummo

関連する問題