2

先日、作業中のアプリでテストを行いました。セキュリティが Web 層から Java EE コンテナーにどのように伝播するかを確認したかったのです。これを行うために、バッキング Bean と EJB ステートレス Bean という簡単なページをいくつか作成しました。ログインして、Web 層と EJB コンテナーでのプリンシパルとロールを確認できるようにセットアップしました。

EJB コンテキストへの呼び出しは、Faces コンテキストを介した呼び出しと同じプリンシパルを持っていることを示しています。しかし、Web 層のレポート (getRole) は、データベースに設定されたグループに含まれていることを期待どおりに確認しましたが、EJB 側への呼び出しは失敗し、例外が発生しました。基本的に、そのコンテキストでの構成について尋ねたように、グループがないことを見つけることができると言っていました。実際、私は EJB 側でセキュリティー構成を行っていません。

ここで何かが欠けているようです。役割/グループに関して双方が同期していることを確認するには何が必要ですか? JDBCレルムを介してユーザーをグループにマップするようにWeb側を構成しました(これは標準構成オプションであるカスタムではありません)。

私はGlassfish 3.1.1を使用しており、カスタマイズされたJDBCレルムを作成して、グループをユーザーに一致させるために、よりクリーンな方法(つまり、間にルックアップテーブルを使用)であることに注意してください。FWIW、私は長い間ソフトウェアに携わってきましたが、フルスタックの Java EE に慣れてきたばかりです (約 1 年)。

4

0 に答える 0