パッケージ jakarta.security.jacc

クラス WebResourcePermission

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

    public final class WebResourcePermission
    extends PermissionSE
    Jakarta Servlet Web リソース権限のクラス。WebResourcePermission は名前付き権限であり、アクションがあります。

    WebResourcePermission の名前(ターゲット名とも呼ばれます)は、許可が関係する Web リソースを識別します。

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

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

      • WebResourcePermission

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

        名前には、権限が適用される Web リソースを識別する URLPatternSpec が含まれています。URLPatternSpec の構文は次のとおりです。

        
                  URLPatternList ::= URLPattern | URLPatternList colon URLPattern
        
                  URLPatternSpec ::= null | URLPattern | URLPattern colon URLPatternList
        
         

        null の URLPatternSpec は、権限コンストラクターによってデフォルトの URLPattern "/" に変換されます。空の文字列は正確な URLPattern であり、正確な URLPattern が発生する可能性のある URLPatternSpec の任意の場所で発生する可能性があります。URLPatternSpec の最初の URLPattern は、パターン型(exact、パスプレフィックス、拡張子、Jakarta Servlet Specification で定義されているデフォルト)のいずれかです。URLPatternSpec に URLPatternList が含まれている場合、URLPatternList のパターンは、権限が適用されないリソースを識別し、次のように最初のパターンのパターン型と値に依存します。

        • 最初のパターンに一致するパターンが URLPatternList に存在しない可能性があります。
        • 最初のパターンがパスプレフィックスパターンの場合、最初のパターンと一致する正確なパターンと、最初のパターンとは異なるが一致するパスプレフィックスパターンのみが URLPatternList で発生する可能性があります。
        • 最初のパターンが拡張パターンである場合、最初のパターンとパスプレフィックスパターンと一致する正確なパターンのみが URLPatternList で発生する可能性があります。
        • 最初のパターンがデフォルトパターン "/" の場合、デフォルトパターン以外のパターンが URLPatternList で発生する可能性があります。
        • 最初のパターンが正確なパターンである場合、URLPatternList は URLPatternSpec に存在してはなりません。

        アクションパラメーターには、HTTP メソッドのコンマ区切りのリストが含まれています。アクションパラメーターの構文は次のように定義されています。

        
                  ExtensionMethod ::= any token as defined by RFC 2616
                            (that is, 1*[any CHAR except CTLs or separators])
        
                  HTTPMethod ::= "GET" | "POST" | "PUT" | "DELETE" | "HEAD" |
                           "OPTIONS" | "TRACE" | ExtensionMethod
        
                  HTTPMethodList ::= HTTPMethod | HTTPMethodList comma HTTPMethod
        
                  HTTPMethodExceptionList ::= exclaimationPoint HTTPMethodList
        
                  HTTPMethodSpec ::= null | HTTPMethodExceptionList |
                           HTTPMethodList
        
         

        HTTPMethodSpec で重複が発生した場合は、許可コンストラクターによって重複を排除する必要があります。

        null または空の文字列 HTTPMethodSpec は、URL パターンで識別されるリソースのすべての HTTP メソッドにアクセス許可が適用されることを示します。

        HTTPMethodSpec に HTTPMethodExceptionList が含まれている場合 (つまり、exclaimationPoint で始まる場合)、例外リストに含まれるメソッドを除くすべてのメソッドに権限が適用されます。

        パラメーター:
        name - 権限が関係するアプリケーション固有の Web リソースを識別する URLPatternSpec。URLPatternSpec 内のすべての URLPattern は、デプロイされた Web アプリケーションモジュールのコンテキストパスに関連しており、同じ URLPattern が URLPatternSpec 内で 2 回以上出現することはできません。null の URLPatternSpec は、権限コンストラクターによってデフォルトの URLPattern "/" に変換されます。URLPatternSpec の URLPattern 要素内に出現するすべてのコロンは、RFC 2396 で定義されているように、エスケープされたエンコーディングで表す必要があります。
        actions - 権限が関係する HTTP メソッドを識別します。このパラメーターを介して渡される値が null または空の文字列である場合、アクセス許可はすべての可能な HTTP メソッドに関係します。
      • WebResourcePermission

        public WebResourcePermission​(StringSE urlPatternSpec,
                                     StringSE[] HTTPMethods)
        URLPatternSpec に対応する名前の新しい WebResourcePermission と、HTTP メソッドの配列から構成されるアクションを作成します。
        パラメーター:
        urlPatternSpec - 権限が関係するアプリケーション固有の Web リソースを識別する URLPatternSpec。URLPatternSpec 内のすべての URLPattern は、デプロイされた Web アプリケーションモジュールのコンテキストパスに関連しており、同じ URLPattern が URLPatternSpec 内で 2 回以上出現することはできません。null の URLPatternSpec は、権限コンストラクターによってデフォルトの URLPattern "/" に変換されます。URLPatternSpec の URLPattern 要素内に出現するすべてのコロンは、RFC 2396 で定義されているように、エスケープされたエンコーディングで表す必要があります。
        HTTPMethods - 各要素に HTTP メソッドの値が含まれる文字列の配列。このパラメーターを介して渡される値が null であるか、要素のない配列である場合、アクセス許可はすべての可能な HTTP メソッドに関係します。
      • WebResourcePermission

        public WebResourcePermission​(HttpServletRequest request)
        HttpServletRequest オブジェクトから新しい WebResourcePermission を作成します。
        パラメーター:
        request - 権限が関係する Jakarta Servlet 操作に対応する HttpServletRequest オブジェクト。権限名は、contextPath (HttpServletRequest.getContextPath()) の後に始まる requestURI (HttpServletRequest.getRequestURI()) の部分文字列です。部分文字列操作によって文字列 "/" が返された場合、権限は名前として空の文字列を使用して構築されます。権限のアクションフィールドは、HttpServletRequest.getMethod() から取得されます。コンストラクターは、名前に出現するすべてのコロン文字を、RFC 2396 で定義されているエスケープエンコーディングに変換する必要があります。
    • メソッドの詳細

      • equals

        public boolean equals​(ObjectSE o)
        2 つの WebResourcePermission オブジェクトが等しいかどうかをチェックします。WebResourcePermission オブジェクトは、URLPatternSpec と(正規化された)アクションの値が同等である場合、同等です。

        参照パーミッションの URLPatternSpec は、最初のパターンが同等である場合、引数パーミッションの URLPatternSpec と同等であり、参照パーミッションの URLPatternList のパターンは、の URLPatternList のパターンと一致するのとまったく同じパターンのセットと集合的に一致します。引数の許可。

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

        次で指定:
        クラス PermissionSEequalsSE 
        パラメーター:
        o - この WebResourcePermission との同等性についてテストされている WebResourcePermission オブジェクト。

        戻り値:
        引数 WebResourcePermission オブジェクトがこの WebResourcePermission と同等である場合は true。
      • getActions

        public StringSE getActions()
        この WebResourcePermission のアクションの正規の文字列表現を返します。正規形式では、事前定義されたメソッドが拡張メソッドに先行し、各メソッド分類内で、対応するメソッドが辞書式順序で昇順で発生します。正規の形式で重複する HTTP メソッドが存在しない可能性があり、すべての HTTP メソッドのセットの正規の形式は値 null です。
        次で指定:
        クラス PermissionSEgetActions 
        戻り値:
        この WebResourcePermission(または null 値)の正規化されたアクションを含む文字列。
      • hashCode

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

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

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

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

        これが当てはまるには、次のすべてが当てはまる必要があります。

        • 引数は WebResourcePermission のインスタンスです
        • 引数パーミッションの名前の最初の URLPattern は、このパーミッションの名前の最初の URLPattern と一致します。
        • 引数権限の名前の最初の URLPattern は、この権限の URLPatternSpec の URLPatternList 内のどの URLPattern とも一致しません。
        • 引数パーミッションの名前の最初の URLPattern がこのパーミッションの URLPatternSpec の最初の URLPattern と一致する場合、このパーミッションの URLPatternSpec の URLPatternList のすべての URLPattern は、引数パーミッションの URLPatternList の URLPattern と一致します。
        • 引数パーミッションのアクションによって表される HTTP メソッドは、このパーミッションのアクションによって表される HTTP メソッドのサブセットです。

        URLPattern マッチングは、Jakarta Servlet マッチングルールを使用して実行されます。このルールでは、2 つの URL パターンが次のように関連している場合に一致します。

        • それらのパターン値は文字列と同等、または
        • このパターンは、パスプレフィックスパターン "/*"、または
        • このパターンはパスプレフィックスパターンであり(つまり、"/" で始まり "/*" で終わります)、引数パターンはこのパターンの部分文字列から最後の 2 文字を引いたもので始まり、次の文字が引数パターン(ある場合)は "/"
        • このパターンは拡張パターン(つまり、"*." で始まります)であり、引数パターンはこのパターンで終わります。
        • 参照パターンは、すべての引数パターンに一致する特別なデフォルトパターン "/" です。

        上記の比較はすべて大文字と小文字が区別されます。

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