Configuration de StyleBook

Autoriser les caractères spéciaux sous leur forme littérale dans StyleBook

Dans la définition de StyleBook, vous pouvez utiliser des chaînes textuelles lorsque les caractères spéciaux d’une chaîne doivent prendre leur forme littérale. Ces chaînes peuvent contenir des caractères d’échappement, des barres obliques inverses, des guillemets, des parenthèses, des espaces blancs, des crochets, etc.

Dans StyleBooks, vous pouvez inclure les expressions de stratégie NetScaler sous leur forme littérale à l’aide de chaînes textuelles. Les expressions de stratégie contiennent généralement des caractères spéciaux. Sans chaînes textuelles, vous devez échapper à des caractères spéciaux en divisant les chaînes en sous-chaînes.

Pour créer une chaîne textuelle, encapsulez une chaîne entre des caractères spéciaux comme suit :

~{string}~

Vous pouvez utiliser des chaînes textuelles dans les expressions StyleBook.

Remarque

N’utilisez pas la séquence de caractères} ~ dans une chaîne d’entrée car cette séquence indique la fin d’une chaîne textuelle.

Exemple :

---
name: test-deny-url
namespace: citrix.adc.stylebooks
version: "6.2"
display-name: StyleBook for creating an AppFw profile
description: This Stylebook configures an AppFw config.
schema-version: "1.0"
import-stylebooks:
  -
    namespace: netscaler.nitro.config
    prefix: ns
    version: "13.0"
parameters:
  -
    name: name
    type: string
    required: true
substitutions:
 default-deny-urls-regex:
     "Command_injection_attack": str("([ /=]|\t|\n)(ls|cat)([ ;'" + "\\"&].\*)?$")
     "Command_injection_attack2": ~{([ /=]|\t|\n)(ls|rm|cat)([ ;'"&].\*)?$}~
components:
  -
    name: appfw-profile-comp
    type: ns::appfwprofile
    properties:
      name: $parameters.name
      type: ["XML"]
    components:
          -
            name: appfw-profile-denyurl-default-binding-subcomp-all
            type: ns::appfwprofile_denyurl_binding
            properties:
                name: $parent.properties.name
                denyurl?: $substitutions.default-deny-urls-regex["Command_injection_attack"]
                state?: "ENABLED"
          -
            name: appfw-profile-denyurl-default-binding-subcomp-all2
            type: ns::appfwprofile_denyurl_binding
            properties:
                name: $parent.properties.name
                denyurl?: $substitutions.default-deny-urls-regex["Command_injection_attack2"]
                state?: "ENABLED"
<!--NeedCopy-->

Dans cet exemple, les default-deny-urls-regex substitutions ont une expression mot pour mot.

  • "Command_injection_attack": str("([ /=]|\\t|\\n)(ls|cat)([ ;'" + "\\\"&].*)?$"): StyleBook le traite comme une expression régulière.

  • "Command_injection_attack2": ~{([ /=]|\t|\n)(ls|rm|cat)([ ;'\"&].*)?$}~: StyleBook le traite comme une expression textuelle. Les caractères spéciaux de cette chaîne prennent la forme littérale.

Concaténer plusieurs chaînes textuelles

Vous pouvez concaténer des chaînes textuelles avec les chaînes régulières ou des chaînes avec interpolations. Lorsque vous le faites, le StyleBook ignore l’interprétation uniquement pour les chaînes textuelles. Utilisez l’opérateur plus (+) entre les chaînes à concaténer.

Exemple :

value: "~{"id": "}~ + %{$atom.key}% + ~{", "value": "}~ + %{$atom.value}% + ~{"}~"
<!--NeedCopy-->

Dans cet exemple, %{$atom.key}% et %{$atom.value}% sont interprétés. Et, l’interprétation est ignorée pour le reste.

Autoriser les caractères spéciaux sous leur forme littérale dans StyleBook