2011-12-03 20 views
2

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> 
+1

Glassfishのは、あなたが同じグループと役割を維持した場合、自動的にこれらのマッピングを生成し、「ロールマッピングするには、デフォルトの校長」と呼ばれる環境を提供しています。 Configurations> server-config> Securityにあるチェックボックスを選択することで有効にすることができます。他のアプリケーションサーバーも同様の機能を持つことが予想されます。デプロイする各アプリケーションサーバーのレルムを構成するための指示を提供する必要があるため、この命令の最後にこの命令を追加して、コンテナ固有のマッピングファイルを作成する必要がありません。 – 8bitjunkie

答えて

-1

ある:

17.2 Beanのコード

から参照セキュリティロールの.5.3宣言...

DeclareRoles注釈が使用されていない場合、Bean Providerは デプロイメント記述子のsecurity-role-ref要素を使用して、 に参照されているセキュリティロールを宣言する必要があります。

  • がrole-name要素を使用してセキュリティロールの名前を宣言します。以下のように のsecurity-role-refの要素が定義されています。名前は、 セキュリティロール名で、 isCallerInRole(String roleName)メソッドのパラメータとして使用する必要があります。

  • オプションで、セキュリティロールの説明をdescription要素に指定します。さらに

次のように

デプロイメントディスクリプタは、ザ・Beanプロバイダおよび/または アプリケーションアセンブラを使用する場合は、セキュリティ・ロール・デプロイメントディスクリプタに 要素を使用しています。

  • security-role要素を使用して、各セキュリティロールを定義します。
  • セキュリティロールの名前を定義するには、role-name要素を使用します。
  • オプションで、description要素を使用してセキュリティロールの説明を指定します。

次の例は、 配備記述子のセキュリティロール定義を示しています。

<assembly-descriptor> 
    <security-role> 
    <description> 
     This role includes the employees of the 
     enterprise who are allowed to access the 
     employee self-service application. This role 
     is allowed only to access his/her own 
     information. 
    </description> 
    <role-name>employee</role-name> 
    </security-role> 
+0

これはOPの質問には答えません。 OPは、コンテナ固有の構成ファイルを使用せずにロールをプリンシパルにマップしたいと考えています。 – 8bitjunkie

関連する問題