6.3. Jakarta Enterprise Beans セキュリティーアノテーション
6.3.1. Jakarta Enterprise Beans セキュリティーアノテーションについて
Jakarta Enterprise Beans javax.annotation.security アノテーションは Jakarta Annotations 1.3 仕様で定義されます。
Jakarta Enterprise Beans はセキュリティーアノテーションを使用してセキュリティーに関する情報をデプロイヤーに渡します。これらの型には次のようなものがあります。
- @DeclareRoles
- 利用可能なロールを宣言します。
- @RunAs
- コンポーネントの伝播セキュリティーアイデンティティーを設定します。
6.3.2. Jakarta Enterprise Beans セキュリティーアノテーションの使用
XML 記述子またはアノテーションのいずれかを使用して、Jakarta Enterprise Bean でメソッドを呼び出すことのできるセキュリティーロールを制御できます。XML 記述子の使用に関する情報は、Use Jakarta Enterprise Beans Method Permissions を参照してください。
デプロイメント記述子に明示的に指定されるメソッドの値はすべて、アノテーションの値を上書きします。メソッドの値がデプロイメント記述子で指定されていない場合は、アノテーションを使用して設定された値が使用されます。上書きの粒度は、方法ごとに決定されます。
Jakarta Enterprise Beans のセキュリティーパーミッションを制御するアノテーション
- @DeclareRoles
-
@DeclareRolesを使用して、パーミッションをチェックするセキュリティーロールを定義します。@DeclareRolesがない場合、一覧は@RolesAllowedアノテーションから自動的にビルドされます。 - @RolesAllowed, @PermitAll, @DenyAll
-
@RolesAllowedを使用して、単一のメソッドまたは複数のメソッドへのアクセスを許可するロールを一覧表示します。単一のメソッドまたは複数のメソッドの使用からすべてのロールを許可または拒否するには、@PermitAllまたは@DenyAllを使用します。 - @RunAs
-
@RunAsを使用して、アノテーション付きのメソッドから呼び出しを行うときにメソッドが使用するロールを指定します。
例: セキュリティーアノテーションの例
@Stateless
@RolesAllowed({"admin"})
@SecurityDomain("other")
public class WelcomeEJB implements Welcome {
@PermitAll
public String WelcomeEveryone(String msg) {
return "Welcome to " + msg;
}
@RunAs("tempemployee")
public String GoodBye(String msg) {
return "Goodbye, " + msg;
}
public String GoodbyeAdmin(String msg) {
return "See you later, " + msg;
}
}
このコードでは、すべてのロールが WelcomeEveryone メソッドにアクセスできます。GoodBye メソッドは、呼び出しを行う際に tempemployee ロールを使用します。メソッド GoodbyeAdmin や、セキュリティーアノテーションの他のメソッドには、admin ロールのみがアクセスできます。