AppExpert

Configurer les expressions de stratégie avancées nommées

Au lieu de taper la même expression plusieurs fois dans plusieurs stratégies, vous pouvez configurer une expression nommée et faire référence au nom à chaque fois que vous souhaitez utiliser l’expression dans une stratégie. Par exemple, vous pouvez créer les expressions nommées suivantes :

  • ThisExpression:

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

  • ThatExpression:

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

Vous pouvez ensuite utiliser ces expressions nommées dans une expression de stratégie. Par exemple, ce qui suit est une expression juridique basée sur les exemples précédents :

ThisExpression   ThatExpression

Vous pouvez utiliser le nom d’une expression de stratégie avancée comme préfixe d’une fonction. L’expression nommée peut être une expression simple ou une expression composée. La fonction doit être celle qui peut fonctionner sur le type de données qui est retourné par l’expression nommée.

Exemple 1 : Expression nommée simple comme préfixe

L’expression nommée simple suivante, qui identifie une chaîne de texte, peut être utilisée comme préfixe à la fonction AFTER_STR(“<string>”), qui fonctionne avec des données de texte :

HTTP.REQ.BODY(1000)

Si le nom de l’expression est Top1ko, vous pouvez utiliser Top1kB.after_str(“username”) au lieu de HTTP.REQ.BODY(1000) .AFTER_STR(“username”).

Exemple 2 : Expression nommée composée en tant que préfixe

Vous pouvez créer une expression nommée composée appelée basic_header_value pour concaténer le nom d’utilisateur dans une requête, un deux-points ( :) et le mot de passe de l’utilisateur, comme suit :

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

Vous pouvez ensuite utiliser le nom de l’expression dans une action de réécriture, comme illustré dans l’exemple suivant :

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

Dans l’exemple, dans l’expression utilisée pour construire la valeur de l’en-tête personnalisé, l’algorithme de codage B64 est appliqué à la chaîne renvoyée par l’expression nommée composée.

Vous pouvez également utiliser une expression nommée (seule ou en tant que préfixe d’une fonction) pour créer l’expression de texte pour la cible de remplacement dans une réécriture.

Configurer une expression de syntaxe nommée par défaut à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour configurer une expression nommée et vérifier la configuration :

-  add policy expression <name><value>

-  show policy expression <name>

Exemple :

> 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

L’expression peut contenir jusqu’à 1 499 caractères.

Configurer une expression nommée à l’aide de l’interface graphique

  1. Dans le volet de navigation, développez AppExpert, puis cliquez sur Expressions.
  2. Cliquez sur Expressions avancées.
  3. Cliquez sur Ajouter.
  4. Entrez un nom et une description pour l’expression.
  5. Configurez l’expression à l’aide du processus décrit à la section Configurer l’expression de stratégie avancée. Un message dans la barre d’état indique que l’expression de stratégie est correctement configurée.