正規表現の使用
正規表現(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
は一致しません。