Citrix ADC

Konfigurieren von benannten erweiterten Richtlinienausdrücken

Anstatt denselben Ausdruck mehrmals in mehreren Richtlinien erneut einzugeben, können Sie einen benannten Ausdruck konfigurieren und jederzeit auf den Namen verweisen, wenn Sie den Ausdruck in einer Richtlinie verwenden möchten. Beispielsweise können Sie die folgenden benannten Ausdrücke erstellen:

  • ThisExpression:

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

  • ThatExpression:

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

Sie können diese benannten Ausdrücke dann in einem Richtlinienausdruck verwenden. Der folgende Ausdruck ist beispielsweise ein rechtlicher Ausdruck, der auf den vorangegangenen Beispielen basiert:

ThisExpression   ThatExpression

Sie können den Namen eines erweiterten Richtlinienausdrucks als Präfix einer Funktion verwenden. Der benannte Ausdruck kann entweder ein einfacher Ausdruck oder ein zusammengesetzter Ausdruck sein. Die Funktion muss eine Funktion sein, die für den Datentyp arbeiten kann, der vom benannten Ausdruck zurückgegeben wird.

Beispiel 1: Einfacher benannter Ausdruck als Präfix

Der folgende einfache benannte Ausdruck, der eine Textzeichenfolge identifiziert, kann als Präfix für die <string> Funktion AFTER_STR ( ) verwendet werden, die mit Textdaten arbeitet:

HTTP.REQ.BODY(1000)

Wenn der Name des Ausdrucks Top1kB lautet, können Sie Top1kB.after_str (username) anstelle von HTTP.REQ.BODY (1000) .AFTER_STR (username) verwenden.

Beispiel 2: Zusammengesetzte benannte Ausdrücke als Präfix

Sie können einen zusammengesetzten benannten Ausdruck namens basic_header_value erstellen, um den Benutzernamen in einer Anforderung, einen Doppelpunkt (:) und das Kennwort des Benutzers wie folgt zu verketten:

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

Sie können dann den Namen des Ausdrucks in einer Umschreibaktion verwenden, wie im folgenden Beispiel gezeigt:

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

Im Beispiel wird in dem Ausdruck, der zum Erstellen des Werts des benutzerdefinierten Headers verwendet wird, der B64-Kodierungsalgorithmus auf die Zeichenfolge angewendet, die von der zusammengesetzten benannten Ausdruck zurückgegeben wird.

Sie können auch einen benannten Ausdruck (entweder selbst oder als Präfix einer Funktion) verwenden, um den Textausdruck für das Ersetzungsziel in einem Umschreiben zu erstellen.

Konfigurieren eines benannten Standard-Syntaxausdrucks mit der CLI

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um einen benannten Ausdruck zu konfigurieren und die Konfiguration zu überprüfen:

-  add policy expression <name><value>

-  show policy expression <name>

Beispiel:

> 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

Der Ausdruck kann bis zu 1.499 Zeichen lang sein.

Konfigurieren eines benannten Ausdrucks mit der GUI

  1. Erweitern Sie im Navigationsbereich AppExpert, und klicken Sie dann auf Ausdrücke.
  2. Klicken Sie auf Erweiterte Ausdrücke.
  3. Klicken Sie auf Hinzufügen.
  4. Geben Sie einen Namen und eine Beschreibung für den Ausdruck ein.
  5. Konfigurieren Sie den Ausdruck mithilfe des unter beschriebenen ProzessesKonfigurieren des erweiterten Richtlinienausdrucks. Eine Meldung in der Statusleiste zeigt an, dass der Richtlinienausdruck erfolgreich konfiguriert wurde.

Konfigurieren von benannten erweiterten Richtlinienausdrücken