パッケージ jakarta.security.jacc

クラス WebUserDataPermission

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

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

    WebUserDataPermission の名前(ターゲット名とも呼ばれる)は、コンテキストパスの相対 URL パターンによって Web リソースを識別します。

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

      • WebUserDataPermission

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

        名前には、権限が適用される 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 メソッドのコンマ区切りリストが含まれており、その後にコロンで HTTP メソッドから区切られた transportType が続く場合があります。

        
                  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 ::= emptyString | HTTPMethodExceptionList |
                          HTTPMethodList
        
                  transportType ::= "INTEGRAL" | "CONFIDENTIAL" | "NONE"
        
                  actions ::= null | HTTPMethodSpec |
                          HTTPMethodSpec colon transportType
        
         

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

        空の文字列 HTTPMethodSpec は、可能なすべての HTTP メソッドを含むリストの省略形です。

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

        transportType のないアクション文字列は、TransportType として値 "NONE" を持つアクション文字列の省略形です。

        transportType が "NONE" であることを表す付与された権限は、関連付けられたリソースに任意の接続型を使用してアクセスできることを示します。

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

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

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

      • equals

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

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

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

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

        public StringSE getActions()
        この WebUserDataPermission のアクションの正規の文字列表現を返します。

        WebUserDataPermission のアクションの正規形式は、次の構文の説明で説明されています。

        
                  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 ::= emptyString | HTTPMethodExceptionList |
                          HTTPMethodList
        
                  transportType ::= "INTEGRAL" | "CONFIDENTIAL" | "NONE"
        
                  actions ::= null | HTTPMethodList |
                          HTTPMethodSpec colon transportType
        
         

        権限の HTTP メソッドが HTTP メソッドセット全体に対応し、権限のトランスポート型が "INTEGRAL" または "CONFIDENTIAL" の場合、HTTP メソッドは emptyString HTTPMethodSpec によって正規形式で表されます。権限の HTTP メソッドが HTTP メソッドセット全体に対応し、権限のトランスポート型が "INTEGRAL" または "CONFIDENTIAL" でない場合、正規アクション値は null 値になります。

        権限のメソッドが HTTP メソッドセット全体に対応していない場合は、重複を排除し、残りの要素を、事前定義されたメソッドが拡張メソッドの前に配置され、各メソッド分類内で対応するメソッドが辞書式順序で発生するように順序付けする必要があります。結果の(空でない String)HTTPMethodSpec は正規形式に含まれている必要があり、アクセス許可のトランスポート型が "INTEGRAL" または "CONFIDENTIAL" でない場合、正規アクションの値は正確に結果の HTTPMethodSpec である必要があります。

        次で指定:
        クラス PermissionSEgetActions 
        戻り値:
        この WebUserDataPermission(または null 値)の正規化されたアクションを含む文字列。
      • hashCode

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

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

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

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

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

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

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

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

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

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