検索

6.3. Jakarta Enterprise Beans セキュリティーアノテーション

download PDF

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 ロールのみがアクセスできます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.