アプリケーションポリシーのリソースパスの優先順位

Access Gatewayアプリケーションは複数のポリシーを保有できます。各ポリシーは、URI、ルールタイプ、およびその他の情報を含むリソースパスと関連付けられます。複数のポリシーを使用するアプリケーションがリクエストを受信した場合、これらのポリシーは優先順に評価されます。

一般的にポリシーは次の順番に評価されます。

  • カスタムポリシー ‐ カスタムポリシーはまず、入力された順に評価されます。まず、最新のものに追加されます。
  • 長いもの順 - 例えば/a/b/cは/a/bの前に評価されます。
  • トレーニングまたは末尾にスラッシュがない - 末尾に/(スラッシュ)のあるリソースパスは完全一致として扱われます。末尾に /(スラッシュ)のないリソースパスはプレフィックスとして扱われます。
    例:/restは、/restaurantに一致しますが、 /rest/とは一致しません。
  • 同じ長さのポリシーの場合、大文字と小文字を区別するポリシーの方が、区別しないポリシーより先に評価されます。
  • 「/」によって指定されたデフォルトのポリシーが適用されます。

以下は、ポリシーURIとその動作の例です。

URIのルールおよび例 大文字と小文字を区別 大文字と小文字を区別しない
カスタム 他のすべてのURIポリシーの前に評価されます。
入力順に沿って評価されます。
リソースパスに正規表現が含まれる場合あります。
URIルール:/a/b/C
例:/a/b/C
/a ‐ 一致しません。                                                                
/a/b ‐ 一致しません。
/a/b/c ‐ 一致しません。
/a ‐ 一致しません。
/a/b ‐ 一 致しません。
/a/b/c ‐ 大文字と小文字を区別するルールがない場合は一致します。
/a/b/C ‐ 一致します

URIルール:/a/b/C
例:/a/b/C

/a ‐ 一致しません。
/a/b ‐ 一致しません。
/a/b/c ‐ 一致します。

/a ‐ 一致しません。
/a/b ‐ 一致しません。
/a/b/c ‐ 大文字と小文字を区別するルールがない場合は一致します。

URIルール:/a/b
例:/a/b
/a‐一致しません。
/a/b ‐ 一致します。
/a ‐ 一致しません。
/a/bは、大文字と小文字を区別するルールがない場合は一致します。

URIルール:/a
例:/a

/a ‐ 一致します。
/A ‐ 一致しません。
/a/b ‐ 一致しません。

/a‐大文字と小文字を区別しない場合は一致します。
/A ‐ 一致します
/a/b ‐ 一致しません。

デフォルト ("/")ルール 前のルールで一致しなかったものに一致します。

デフォルトでは、/uriはプレフィックスと見なされ、 /uriで始まるパスと一致します。
デフォルトでは、/uri/(末尾がスラッシュで終わる)は 完全一致であり、完全一致するURI列とのみ一致します。

優先順に表示された追加の例

URI

大文字と小文字を区別

コメント

/a/b/c

はい

大文字と小文字を区別することは、URIが同じであることより優先されます。

/a/b/c

いいえ

/a/f

はい

両方が大文字と小文字を区別するように設定されている場合、同数の要素(2つ)が辞書式に並べ替えられます。

/a/b

はい

/a/e

いいえ

両方が大文字と小文字を区別しないように設定されている場合、同数の要素(2つ)が、大文字と小文字を区別する2つの要素ルールの後で辞書式に並べ替えられます。

/a/b

いいえ

/a

いいえ

一般的に、並べ替えの順序は以下のように決定されます:

  1. カスタムポリシー:カスタムポリシーが最初に評価され、カスタムポリシー内で入力順に評価されます。
  2. URI内の要素の合計:例えば/a/b/cは、リソースパスに"/"(スラッシュ)で分割された3つの要素を有します。
  3. 大文字と小文字を区別:大文字と小文字を区別するポリシーは、同数の要素を持つ大文字と小文字を区別しないポリシーの上に並べ替えられます。
  4. 辞書式:ポリシーは次にアルファベット順に並べられます。

ポリシーとアップグレード

Access Gatewayバージョン2021.1.0より以前は、すべてのポリシーが大文字と小文字を区別するものとして扱われていました。アップグレード中は、過去の動作を反映させるためにすべてのポリシーが大文字と小文字を区別するように設定されます。アップグレード後に追加された新しいポリシーでは、が大文字と小文字を区別しないようにデフォルトで設定されているため、必要に応じて明示的に大文字と小文字を区別するように設定する必要があります