Configuración de StyleBook

Permitir caracteres especiales con su forma literal en StyleBook

En la definición de StyleBook, puede utilizar cadenas textuales cuando los caracteres especiales de una cadena tienen que adoptar su forma literal. Estas cadenas pueden contener caracteres de escape, barra invertida, comillas, paréntesis, espacios en blanco, corchetes, etc.

En StyleBooks, puede incluir expresiones de directivas de NetScaler en su forma literal mediante cadenas literales. Las expresiones de directiva suelen contener caracteres especiales. Sin cadenas literales, tiene que escapar de los caracteres especiales dividiendo cadenas en subcadenas.

Para crear una cadena literal, encapsula una cadena entre caracteres especiales de la siguiente manera:

~{string}~

Puede utilizar cadenas literales en las expresiones StyleBook.

Nota

No utilice la secuencia de caracteres} ~ en una cadena de entrada porque esta secuencia indica el final de una cadena textual.

Ejemplo:

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

En este ejemplo, las default-deny-urls-regex sustituciones tienen una expresión literal.

  • "Command_injection_attack": str("([ /=]|\\t|\\n)(ls|cat)([ ;'" + "\\\"&].*)?$"): StyleBook lo procesa como una expresión regular.

  • "Command_injection_attack2": ~{([ /=]|\t|\n)(ls|rm|cat)([ ;'\"&].*)?$}~: StyleBook lo procesa como una expresión literal. Los caracteres especiales de esta cadena adoptan la forma literal.

Concatenar varias cadenas literales

Puede concatenar cadenas literales con las cadenas regulares o cadenas con interpolaciones. Cuando lo hace, el StyleBook omite la interpretación solo para las cadenas literales. Utilice el operador más (+) entre las cadenas para concatenar.

Ejemplo:

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

En este ejemplo, %{$atom.key}% y %{$atom.value}% se interpretan. Y, la interpretación se omite para el resto.

Permitir caracteres especiales con su forma literal en StyleBook