9.2.3.2. EJB セキュリティーアノテーションの使用
概要
XML 記述子またはアノテーションのいずれかを使用して、Enterprise JavaBeans(EJB)でメソッドを呼び出すことのできるセキュリティーロールを制御できます。XML 記述子の使用方法は、「EJB メソッドパーミッションの使用」 を参照してください。
デプロイメント記述子に明示的に指定されるメソッドの値はすべて、アノテーションの値を上書きします。メソッドの値がデプロイメント記述子で指定されていない場合は、アノテーションを使用して設定された値が使用されます。上書きの粒度は、方法ごとに決定されます。
EJB のセキュリティーパーミッションを制御するアノテーション
- @DeclareRoles
- @DeclareRoles を使用して、パーミッションをチェックするセキュリティーロールを定義します。@DeclareRoles がない場合、この一覧は @RolesAllowed アノテーションから自動的にビルドされます。ロールの設定に関する情報は、「 『Java EE 6 チュートリアル』 で セキュリティーロールの宣言による承認ユーザーの指定」を参照してください。
- @RolesAllowed, @PermitAll, @DenyAll
@RolesAllowedを使用して、メソッドまたはメソッドへのアクセスを許可するロールを一覧表示します。メソッドまたはメソッドの使用をすべて許可または拒否するには、@PermitAllまたは@DenyAllを使用します。アノテーションメソッドパーミッション の設定に関する詳細は、「 『Java EE 6 チュートリアル』 による承認済みのユーザーの指定」を参照してください。- @RunAs
@RunAsを使用して、アノテーション付きメソッドから呼び出しを行う際にメソッドが使用するロールを指定します。アノテーションを使用した伝播されたセキュリティーアイデンティティー の設定に関する詳細は、「 『Java EE 6 チュートリアル』 によるセキュリティーアイデンティティー(Run-As) 」のチュートリアルを参照してください。
例9.10 セキュリティーアノテーションの例
このコードでは、すべてのロールがメソッド
WelcomeEveryone にアクセスできます。GoodBye メソッドは、呼び出しの実行時に tempemployee ロールを使用します。admin ロールのみがメソッド GoodbyeAdmin にアクセスでき、セキュリティーアノテーションのないその他のメソッドにアクセスできます。