ADC

名前付き高度なポリシー式の設定

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

  • この式:

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

  • その表現:

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

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

このエクスプレッション

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

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

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

HTTP.REQ.BODY(1000)

式の名前が top1KB の場合、HTTP.REQ.BODY (1000) .AFTER_STR (「ユーザー名」) の代わりに Top1KB.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'

この例では、カスタムヘッダーの値を構築するために使用される式で、名前付き複合式によって返される文字列に 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. 高度なポリシー式の構成で説明されているプロセスを使用して、式を設定します。ステータスバーにメッセージが表示され、ポリシー式が正常に設定されたことが示されます。
名前付き高度なポリシー式の設定