1.3. セキュリティロール
<security-role-ref> または <security-identity> 要素のどちらかで参照されるセキュリティロール名は、アプリケーションの宣言されたロールの 1 つにマップする必要があります。アプリケーションアセンブラは、<security-role> 要素を宣言することで論理セキュリティロールを定義します。role-name 属性値は Administrator、Architect、Sales_Manager のような論理アプリケーションロール名です。
Java EE 仕様で注意することは、デプロイメント記述子のセキュリティロールはアプリケーションの論理セキュリティビューを定義するために使用されることを覚えておくことが重要である点です。Java EE デプロイメント記述子で定義されるロールと、ユーザーグループ、ユーザー、プリンシパル、目的のエンタープライズの動作環境に存在する他のコンセプトとを混同しないでください。デプロイメント記述子のロールはアプリケーションドメイン固有の名前を持つアプリケーション構成です。例えば、銀行のアプリケーションでは Bank_Manager、Teller、Customer などのロール名を使用することがあります。

図1.3 <security-role> 要素
JBoss では <security-role> 要素が使用されるのは、<security-role-ref> 値または <role-name> 値をコンポーネントロールが参照する論理ロールにマップするときだけです。JBossSX 実装の詳細を説明する時に触れますが、ユーザーの割り当てられたロールは、アプリケーションのセキュリティマネージャの動的関数になります。
JBoss ではメソッドパーミッションを宣言するために <security-role> 要素の定義は必要ありません。ただし、<security-role> 要素の仕様は、 アプリケーションサーバー全体で移植性を確保し、デプロイメント記述子を管理するために今でも推奨されています。例1.3「ejb-jar.xml 記述子の一部」 では
ejb-jar.xml ファイルの <security-role> の使用方法について説明しています。
例1.3 ejb-jar.xml 記述子の一部
<!-- A sample ejb-jar.xml fragment -->
<ejb-jar>
<!-- ... -->
<assembly-descriptor>
<security-role>
<description>The single application role</description>
<role-name>TheApplicationRole</role-name>
</security-role>
</assembly-descriptor>
</ejb-jar>
例1.4 web.xml 記述子の一例
<!-- A sample web.xml fragment -->
<web-app>
<!-- ... -->
<security-role>
<description>The single application role</description>
<role-name>TheApplicationRole</role-name>
</security-role>
</web-app>