Ce article a été traduit automatiquement. (Clause de non responsabilité)
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"
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}% + ~{"}~"
Dans cet exemple, %{$atom.key}%
et %{$atom.value}%
sont interprétés. Et, l’interprétation est ignorée pour le reste.