Java EE 6アプリケーションを完成させています。このアプリケーションはGlassFishを使用して開発されていますが、別のアプリケーションサーバー間でポータブルにしたいと考えています。jdbc領域によるポータブルセキュリティロールマッピング
セキュリティは、アプリケーションのデータソース内のユーザーとグループを定義し、GlassFishのjdbcRealmを使用して実装されています。私は他のApp Serverにも同様の実装が存在することを知っています(詳細はまだ見ていませんが)。
セキュリティロールとプリンシパル/ユーザーの間のマッピングが、アプリケーションサーバー自体またはアプリケーションソースコードでapp-serverを使用せずに定義できるかどうかを理解する必要があります固有のデプロイメント記述子glassfish-web.xml
または同等のものです。これにより、デプロイヤーの.war
ファイルを編集する作業が不要になります。これは、アプリケーションが移植可能でなければならないためです。
Iは、同じ名前のアプリケーション定義グループにロールをマップしたので、私は削除したいコードは、EBJ 3.1仕様1として
<security-role-mapping>
<role-name>RoleGroup1</role-name>
<group-name>RoleGroup1</group-name>
</security-role-mapping>
<security-role-mapping>
<role-name>RoleGroup2</role-name>
<group-name>RoleGroup2</group-name>
</security-role-mapping>
Glassfishのは、あなたが同じグループと役割を維持した場合、自動的にこれらのマッピングを生成し、「ロールマッピングするには、デフォルトの校長」と呼ばれる環境を提供しています。 Configurations> server-config> Securityにあるチェックボックスを選択することで有効にすることができます。他のアプリケーションサーバーも同様の機能を持つことが予想されます。デプロイする各アプリケーションサーバーのレルムを構成するための指示を提供する必要があるため、この命令の最後にこの命令を追加して、コンテナ固有のマッピングファイルを作成する必要がありません。 – 8bitjunkie