ADC

名前付き詳細ポリシー式を構成する

複数のポリシーで同じ式を複数回再入力する代わりに、名前付き式を設定し、その式をポリシーで使用したいときはいつでもその名前を参照できます。たとえば、次の名前付き式を作成できます。

  • ThisExpression:

    http.req.body(100).contains("this")

  • ThatExpression:

    http.req.body(100).contains("that")

その後、これらの名前付き式をポリシー式で使用できます。たとえば、次に示すのは、前述の例に基づく正当な表現です。

この式

高度なポリシー式の名前を関数のプレフィックスとして使用できます。名前付きエクスプレッションは、単純なエクスプレッションまたは複合エクスプレッションのいずれかになります。関数は、名前付き式によって返されるデータの型を操作できる関数でなければなりません。

例 1: プレフィックスとしての単純な名前付き式

テキスト文字列を識別する次の単純な名前付き式は、<string> テキストデータを操作する AFTER_STR (「<string>」) 関数のプレフィックスとして使用できます。

HTTP.REQ.BODY(1000)

式の名前が top1KB の場合は、HTTP.REQ.BODY (1000) .AFTER_STR (「ユーザー名」) の代わりにトップ1KB.AFTER_STR (「ユーザー名」) を使用できます。

例 2: プリフィックスとしての複合名前付き式

basic_header_value という名前の複合式を作成して、次のように要求内のユーザー名、コロン (:)、およびユーザーのパスワードを連結できます。

add policy expression basic_header_value "HTTP.REQ.USER.NAME + \":\" + HTTP.REQ.USER.PASSWD"

次に、次の例に示すように、リライトアクションで式の名前を使用できます。

add rewrite action insert_b64encoded_authorization insert_http_header authorization '"Basic " + basic_header_value.b64encode' -bypassSafetyCheck YES

この例では、カスタムヘッダーの値を構築するために使用される式では、B64 エンコードアルゴリズムが、複合名前付き式によって返される文字列に適用されます。

また、名前付き式(単独で、または関数のプレフィックスとして)を使用して、書き換えで置換ターゲットのテキスト式を作成することもできます。

CLI を使用して名前付きデフォルト構文式を設定する

コマンドプロンプトで次のコマンドを入力して、名前付き式を構成し、構成を確認します。

-  add policy expression <name><value>

-  show policy expression <name>
<!--NeedCopy-->

例:

> add policy expression myExp "http.req.body(100).contains("the other")"
Done

> show policy expression myExp
    1)      Name: myExp  Expr: "http.req.body(100).contains("the other")"  Hits: 0 Type : ADVANCED
Done
<!--NeedCopy-->

式は最大 1,499 文字です。

GUI を使用して名前付き式を構成する

  1. ナビゲーションウィンドウで、[AppExpert] を展開し、[] をクリックします。
  2. [高度な式] をクリックします。
  3. [追加] をクリックします。
  4. 式の名前と説明を入力します。
  5. 高度なポリシー式の構成で説明されているプロセスを使用して、式を設定します。ステータスバーにメッセージが表示され、ポリシー式が正常に設定されたことが示されます。
名前付き詳細ポリシー式を構成する