ADC

Configuration des expressions de stratégie avancées nommées

Au lieu de retaper 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 :

  • Cette expression :

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

  • Cette expression :

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

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

Cette expression

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 capable d’opérer sur le type de données renvoyé par l’expression nommée.

Exemple 1 : expression nommée simple en tant que préfixe

L’expression nommée simple suivante, qui identifie une chaîne de texte, peut être utilisée comme préfixe pour la fonction AFTER_STR(“<string>”), qui fonctionne avec des données 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 signe 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'

Dans cet 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 comme préfixe d’une fonction) pour créer l’expression de texte de la cible de remplacement lors d’une réécriture.

Configurez une expression de stratégie avancée nommée à 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\>
<!--NeedCopy-->

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
<!--NeedCopy-->

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 dans 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.
Configuration des expressions de stratégie avancées nommées