11.6.2. JACC (Java Authorization Contract for Containers) のセキュリティーの設定
jboss-web.xml を変更して正しいパラメーターが含まれるようにする必要があります。
セキュリティードメインへの JACC サポートの追加
セキュリティードメインに JACC サポートを追加するには、required フラグセットで JACC 承認ポリシーをセキュリティードメインの承認スタックへ追加します。以下は JACC サポートを持つセキュリティードメインの例です。ただし、セキュリティードメインは XML で直接ではなく、管理コンソールまたは管理 CLI で設定されます。
<security-domain name="jacc" cache-type="default">
<authentication>
<login-module code="UsersRoles" flag="required">
</login-module>
</authentication>
<authorization>
<policy-module code="JACC" flag="required"/>
</authorization>
</security-domain>
JACC を使用するよう Web アプリケーションを設定
jboss-web.xml は デプロイメントの WEB-INF/ ディレクトリーにあり、Web コンテナーに対する追加の JBoss 固有の設定が含まれています。JACC が有効になっているセキュリティードメインを使用するには、< security-domain > 要素が含まれるようにし、さらに < use-jboss-authorization > 要素を true に設定する必要があります。以下のアプリケーションは、上記の JACC セキュリティードメインを使用するよう適切に設定されます。
<jboss-web>
<security-domain>jacc</security-domain>
<use-jboss-authorization>true</use-jboss-authorization>
</jboss-web>
JACC を使用するよう EJB アプリケーションを設定
セキュリティードメインと JACC を使用するよう EJB を設定する方法は Web アプリケーションの場合とは異なります。EJB の場合、ejb-jar.xml 記述子にメソッドまたはメソッドのグループ上でメソッド パーミッション を宣言できます。< ejb-jar > 要素内では、すべての子 < ;method-permission> 要素に JACC ロールに関する情報が含まれます。詳細は、設定例を参照してください。EJBMethodPermission クラスは Java Enterprise Edition 6 API の一部であり、で http://docs.oracle.com/javaee/6/api/javax/security/jacc/EJBMethodPermission.html 説明されています。
例11.7 EJB の JACC メソッドパーミッション例
<ejb-jar>
<assembly-descriptor>
<method-permission>
<description>The employee and temp-employee roles may access any method of the EmployeeService bean </description>
<role-name>employee</role-name>
<role-name>temp-employee</role-name>
<method>
<ejb-name>EmployeeService</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
</assembly-descriptor>
</ejb-jar>
security > 子要素の jboss-ejb3.xml 記述子で宣言されます。セキュリティードメインの他に、EJB が実行されるプリンシパルを変更する < run-as-principal > を指定することもできます。
例11.8 EJB におけるセキュリティードメイン宣言の例
<ejb-jar>
<assembly-descriptor>
<security>
<ejb-name>*</ejb-name>
<security-domain>myDomain</security-domain>
<run-as-principal>myPrincipal</run-as-principal>
</security>
</assembly-descriptor>
</ejb-jar>