パッケージ jakarta.security.jacc

クラス EJBMethodPermission

  • 実装されたすべてのインターフェース:
    SerializableSEGuardSE

    public final class EJBMethodPermission
    extends PermissionSE
    Jakarta Enterprise Beans メソッド権限のクラス。

    EJBMethodPermission の名前には、ターゲット Jakarta Enterprise Bean を識別するアプリケーションのデプロイ記述子内の ejb-name 要素の値が含まれています。

    EJBMethodPermission のアクションは、権限が適用される Jakarta Enterprise Bean のメソッドを識別します。

    このクラスの実装は、newPermissionCollection を実装するか、スーパークラスからその実装を継承することができます。

    作成者:
    Ron Monzillo, Gary Ellison
    関連事項:
    PermissionSE, 直列化された形式
    • コンストラクターの詳細

      • EJBMethodPermission

        public EJBMethodPermission​(StringSE name,
                                   StringSE actions)
        指定された名前とアクションで新しい EJBMethodPermission を作成します。

        名前には、アプリケーションのデプロイ記述子の Jakarta Enterprise Bean に対応する ejb-name 要素の値が含まれます。

        アクションには methodSpec が含まれます。アクションパラメーターの構文は次のように定義されます。

              methodNameSpec ::= methodName | emptyString
        
              methodInterfaceName ::= String
        
              methodInterfaceSpec ::= methodInterfaceName | emptyString
        
              typeName ::= typeName | typeName []
        
              methodParams ::= typeName | methodParams comma typeName
        
              methodParamsSpec ::= emptyString | methodParams
        
              methodSpec ::= null |
                   methodNameSpec |
                   methodNameSpec comma methodInterfaceName |
                   methodNameSpec comma methodInterfaceSpec comma methodParamsSpec
         

        MethodInterfaceName は空ではない文字列であり、Jakarta Enterprise Beans デプロイ記述子で使用するために定義された method-intf 値を含む必要があります。特に Jakarta Enterprise Beans Specification によって標準化されている場合、追加のインターフェース名をサポートできるように、実装は柔軟でなければなりません。Jakarta Enterprise Beans Specification は現在、次の method-intf 値を定義しています。

         { "Home", "LocalHome", "Remote", "Local", "ServiceEndpoint" }
         

        NULL または空の文字列 methodSpec は、権限が Jakarta Enterprise Bean のすべてのメソッドに適用されることを示します。空の文字列の methodNameSpec を持つ methodSpec は、methodSpec の methodInterface および methodParams 要素に一致する Jakarta Enterprise Bean のすべてのメソッドと一致します。

        空文字列の methodInterfaceSpec を持つ methodSpec は、methodSpec の methodNameSpec および methodParamsSpec 要素に一致する Jakarta Enterprise Bean のすべてのメソッドに一致します。

        methodParamsSpec のない methodSpec は、methodSpec の methodNameSpec および methodInterface 要素に一致する Jakarta Enterprise Bean のすべてのメソッドに一致します。

        methodParams 配列内の typeNames の順序は、ターゲットメソッドのメソッドシグネチャー内の対応するパラメーターの出現順序と一致する必要があります。methodParams 内の各 typeName には、getActions メソッドで定義されている対応するパラメーターの typeName の標準形式が含まれている必要があります。空の methodParamsSpec を持つ methodSpec は、methodSpec の methodNameSpec および methodInterfaceSpec 要素に一致する Jakarta Enterprise Bean のすべての 0 引数メソッドと一致します。

        パラメーター:
        name - 許可が関係する Jakarta Enterprise Bean
        actions - 権限が関係する Jakarta Enterprise Bean のメソッドを識別します。
      • EJBMethodPermission

        public EJBMethodPermission​(StringSE EJBName,
                                   StringSE methodName,
                                   StringSE methodInterface,
                                   StringSE[] methodParams)
        EJBName に対応する名前と、methodName、methodInterface、methodParams から構成されるアクションを持つ新しい EJBMethodPermission を作成します。
        パラメーター:
        EJBName - デプロイ記述子の対応する ejb-name 要素に表示される Jakarta Enterprise Bean の名前の文字列表現。
        methodName - 権限が関係する Jakarta Enterprise Bean のメソッドを示すために使用できる文字列。null または "" の値は、アクセス許可が、メソッド名を考慮せずに、アクセス許可仕様の他のパラメーターと一致するすべてのメソッドに関係することを示します。
        methodInterface - 権限が関係する Jakarta Enterprise Bean インターフェースを指定するために使用できる文字列。null または "" の値は、アクセス許可が、発生するインターフェースを考慮せずに、アクセス許可仕様の他のパラメーターと一致するすべてのメソッドに関連することを示します。
        methodParams - 対象メソッドのパラメーターシグネチャーを指定するために (typeNames によって) 使用できる文字列の配列。methodParams 配列内の typeNames の順序は、対象メソッドのメソッドシグネチャー内の対応するパラメーターの出現順序と一致する必要があります。methodParams 配列内の各 typeName には、getActions メソッドで定義されている対応するパラメーターの typeName の正規形式が含まれている必要があります。空の methodParams 配列は、引数のないメソッドシグネチャーを表すために使用されます。null 値は、メソッドシグネチャーを考慮せずに、権限仕様の他のパラメーターと一致するすべてのメソッドに権限が適用されることを示します。
      • EJBMethodPermission

        public EJBMethodPermission​(StringSE EJBName,
                                   StringSE methodInterface,
                                   MethodSE method)
        EJBName に対応する名前と、methodInterface から構成されるアクション、および Method オブジェクトを持つ新しい EJBMethodPermission を作成します。

        コンテナーは、呼び出し元が Jakarta Enterprise Bean のメソッドを呼び出す権限を持っているかどうかをチェックする前に、このコンストラクターを使用します。

        パラメーター:
        EJBName - デプロイ記述子の対応する ejb-name 要素に表示される Jakarta Enterprise Bean の名前の文字列表現。
        methodInterface - 権限が関係する Jakarta Enterprise Bean インターフェースを指定するために使用できる文字列。null または "" の値は、アクセス許可が、発生するインターフェースを考慮せずに、アクセス許可仕様の他のパラメーターと一致するすべてのメソッドに関連することを示します。
        method - コンテナーが呼び出し元にアクセスする権限があるかどうかを判別しようとしているメソッドに対応する Java.lang.reflect.Method クラスのインスタンス。この値は null であってはなりません。
    • メソッドの詳細

      • equals

        public boolean equals​(ObjectSE o)
        2 つの EJBMethodPermission オブジェクトが等しいかどうかをチェックします。EJBMethodPermission オブジェクトは、大文字と小文字を区別する同等の名前とアクションの値がある場合は同等です。

        2 つのパーミッションオブジェクト P1 と P2 は、P1.implies(P2)と P2.implies(P1)の場合に限り、同等です。

        次で指定:
        クラス PermissionSEequalsSE 
        パラメーター:
        o - この EJBMethodPermission との同等性がテストされている EJBMethodPermission オブジェクト
        戻り値:
        引数 EJBMethodPermission オブジェクトがこの EJBMethodPermission と同等である場合は true。
      • getActions

        public StringSE getActions()
        この EJBMethodPermission のアクションの正規表現を含む文字列を返します。EJBMethodPermission のアクションの正規形式は、次の構文の説明で説明されています。
              methodNameSpec ::= methodName | emptyString
        
              methodInterfaceName ::= String
        
              methodInterfaceSpec ::= methodInterfaceName | emptyString
        
              typeName ::= typeName | typeName []
        
              methodParams ::= typeName | methodParams comma typeName
        
              methodParamsSpec ::= emptyString | methodParams
        
              methodSpec ::= null |
                   methodName |
                   methodNameSpec comma methodInterfaceName |
                   methodNameSpec comma methodInterfaceSpec comma methodParamsSpec
         

        各 typeName の正規形式は、対応するパラメーターの型の完全修飾 Java 名で始まる必要があります。配列パラメーターの typeName の正規形式は、配列のコンポーネント型の完全修飾 Java 名に、配列の次元と同じ数の文字列 "[]" のインスタンスを続けたものです。正規形式には、追加の文字 (空白など) を含めることはできません。

        MethodInterfaceName は空ではない文字列であり、Jakarta Enterprise Beans デプロイ記述子で使用するために定義された method-intf 値を含む必要があります。特に Jakarta Enterprise Beans Specification によって標準化されている場合、追加のインターフェース名をサポートできるように、実装は柔軟でなければなりません。Jakarta Enterprise Beans Specification は現在、次の method-intf 値を定義しています。

         { "Home", "LocalHome", "Remote", "Local", "ServiceEndpoint" }
         
        次で指定:
        クラス PermissionSEgetActions 
        戻り値:
        この EJBMethodPermission の正規化されたアクションを含む文字列。
      • hashCode

        public int hashCode()
        この EJBMethodPermission のハッシュコード値を返します。

        返されるハッシュコードのプロパティは次のとおりである必要があります。

        • Java アプリケーションの存続期間中、hashCode メソッドは、EJBMethodPermission オブジェクトで呼び出されるたびに同じ整数値を返す必要があります。特定の EJBMethodPermission に対して hashCode によって返される値は、アプリケーションの実行ごとに一貫している必要はありません。
        • 2 つの EJBMethodPermission オブジェクトが equals メソッドに従って等しい場合、2 つの Permission オブジェクトのそれぞれに対して hashCode メソッドを呼び出すと、同じ整数結果が生成されるはずです (アプリケーション内)。
        次で指定:
        クラス PermissionSEhashCode 
        戻り値:
        このオブジェクトの整数ハッシュコード値。
      • implies

        public boolean implies​(PermissionSE permission)
        引数 Permission がこの EJBMethodPermission によって「暗示される」かどうかを決定します。

        これが事実であるために

        • 引数は EJBMethodPermission のインスタンスである必要があります
        • この EJBMethodPermission と同等の名前
        • 引数のアクセス許可が適用されるメソッド(アクションで定義されている)は、この EJBMethodPermission が適用されるメソッドのサブセットである必要があります(アクションで定義されているとおり)。

        引数のアクセス許可は、次のすべての条件が満たされた場合に、このアクセス許可が適用されるメソッドのサブセットに適用されます。

        • この権限の methodNameSpec のメソッド名コンポーネントが null、空の文字列、引数権限のメソッド名と同等
        • この権限の methodNameSpec のメソッドインターフェースコンポーネントが null、空の文字列、引数権限のメソッドインターフェースと同等
        • この権限の methodNameSpec のメソッドパラメーターリストコンポーネントは null、空の文字列、引数権限のメソッドパラメーターリストと同等です。

        上記の名前とアクションの比較では、大文字と小文字が区別されます。

        次で指定:
        クラス PermissionSEimpliesSE 
        パラメーター:
        permission - "this" EJBMethodPermission は、引数の許可を意味するかどうかを確認するためにチェックされます。
        戻り値:
        指定された権限がこのオブジェクトによって暗示されている場合は true、そうでない場合は false。