正規表現の使用
正規表現(regex)を使用して、エンタープライズ・アプリケーションの複数のURLを表し、同じ認証ポリシーおよび同じ認可ポリシーを適用できるURLパターンを定義します。
アプリケーションのすべてのURLのリストを作成し、類似したURLをマップするURLパターンを定義します。URLパターンでは、共通の認証ポリシーおよび認可ポリシーを定義します。
アプリケーション・ゲートウェイの認可エンジンでは、正規表現の作成に使用できるすべてのトークンがサポートされます(文字クラス、アンカー、エスケープ文字、グループと参照、先読み/後読み、量指定子と選択、置換など)。
| オペレータ | 説明 | 例 |
|---|---|---|
任意の1文字に一致する演算子(.) |
ピリオド文字は、この演算子を表します。 | a.bは、aで始まりbで終わる3文字の文字列に一致します |
ゼロ個以上と一致する演算子(*) |
この演算子は、必要な回数(ゼロを含む)だけ直前の最小の正規表現を繰り返してパターンに一致します | a*は、ゼロ個以上のaで構成された任意の文字列に一致します。別の例をあげると、fo*はoの繰返しを示します(foの繰返しではありません)。したがって、fo*はf、fo、fooなどに一致します。 |
1個以上に一致する演算子(+) |
この演算子は、ゼロ個以上に一致する演算子に似ていますが、直前の正規表現を少なくとも1回繰り返します。 | ca+rは、carおよびcaaaarに一致しますが、crには一致しません |
ゼロ個または1個に一致する演算子(?) |
この演算子は、ゼロ個以上に一致する演算子に似ていますが、直前の正規表現を1回繰り返すか、まったく繰り返しません。 | ca?rは、carとcrの両方に一致しますが、それ以外には一致しません。 |
否定(^) |
式を否定します。 | ^aは、a以外の任意の文字に一致します |
グループ化演算子((...)) |
正規表現は、数学言語およびプログラミング言語がカッコで囲まれた式を1つの単位として処理するように、カッコ内の式を処理します。式は、カッコ外の式より前に処理されます。 | f(a|b)aは、faaおよびfbaに一致します。つまり、演算a|bは、残りの部分より前に処理されます。 |
選択演算子(|) |
選択は、正規表現の選択肢のいずれかに一致します: 2つの正規表現aとbの間に選択演算子を表す1個以上の文字を配置すると、結果はaおよびbが一致する文字列の和集合に等しくなります。 |
別の例として、 |
リスト演算子([ ... ]および[^ ... ]) |
一致リストは、リスト項目のいずれかによって表される1個の文字に一致します。項目は、文字、文字クラス式または範囲式です。 非一致リストは、一致リストに似ていますが、リスト項目のいずれかによって表されない1個の文字に一致します。 |
非一致の例として、 |
レンジ演算子(-) |
現在の照合順序において2つの要素の間にある文字を表します。 | [a-f]は、aからfまでのすべての文字(両端を含む)を表します。 |
数字(\d) |
任意の数字(0-9)に一致します。 | [0-9]と同じです |
数字以外(\D) |
数字(0-9)以外の任意の文字に一致します。 | [^0-9]と同じです |
エスケープ(\) |
式の次の文字がその文字自体を意味し、演算子を意味しないようにします。 | \.は、ピリオドを意味し、任意の1文字に一致する演算子を意味しません。 |
正規表現の使用
たとえば、パス/mybankの下位にあるmyで始まるアプリケーションの任意のページに対するアクセスを、認証されたユーザーのみに許可する場合、正規表現/mybank/my.*を使用できます
ドット(.)とアスタリスク(*)の組合せは、接頭辞myの後に連続するゼロ個以上の一連の文字を表します。
この例では、URL /mybank/myCreditsおよび/mybank/myDebitsは/mybank/my.*パターンに一致しますが、/mybank/aboutは一致しません。