Citrix ADC

Configurar expresiones de directiva avanzadas con nombre

En lugar de volver a escribir la misma expresión varias veces en varias directivas, puede configurar una expresión con nombre y hacer referencia al nombre cada vez que quiera utilizar la expresión en una directiva. Por ejemplo, podría crear las siguientes expresiones con nombre:

  • Esta presión:

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

  • Esa expresión:

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

A continuación, puede utilizar estas expresiones con nombre en una expresión de directiva. Por ejemplo, la siguiente es una expresión legal basada en los ejemplos anteriores:

Esta presión   Esa expresión

Puede utilizar el nombre de una expresión de directiva avanzada como prefijo de una función. La expresión con nombre puede ser una expresión simple o una expresión compuesta. La función debe ser una que pueda operar en el tipo de datos que devuelve la expresión nombrada.

Ejemplo 1: Expresión con nombre simple como prefijo

La siguiente expresión con nombre simple, que identifica una cadena de texto, se puede utilizar como prefijo a la <string> función AFTER_STR (“ “), que funciona con datos de texto:

HTTP.REQ.BODY(1000)

Si el nombre de la expresión es top1kB, puede usar top1kb.after_str (“nombre de usuario”) en lugar de HTTP.REQ.BODY (1000).AFTER_STR (“nombre de usuario”).

Ejemplo 2: Expresión con nombre compuesto como prefijo

Puede crear una expresión con nombre compuesta llamada basic_header_value para concatenar el nombre de usuario en una solicitud, dos puntos (:) y la contraseña del usuario, como se indica a continuación:

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

A continuación, puede utilizar el nombre de la expresión en una acción de reescritura, como se muestra en el ejemplo siguiente:

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

En el ejemplo, en la expresión que se utiliza para construir el valor del encabezado personalizado, el algoritmo de codificación B64 se aplica a la cadena devuelta por la expresión denominada compuesta.

También puede utilizar una expresión con nombre asignado (ya sea por sí misma o como prefijo de una función) para crear la expresión de texto para el destino de reemplazo en una reescritura.

Configure una expresión de sintaxis predeterminada con nombre mediante la CLI

En el símbolo del sistema, escriba los siguientes comandos para configurar una expresión con nombre y verificar la configuración:

-  add policy expression <name><value>

-  show policy expression <name>

Ejemplo:

> 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

La expresión puede tener hasta 1.499 caracteres.

Configure una expresión con nombre mediante la interfaz gráfica de usuario

  1. En el panel de navegación, expanda AppExpert y, a continuación, haga clic en Expresiones.
  2. Haga clic en Expresiones avanzadas.
  3. Haga clic en Agregar.
  4. Introduzca un nombre y una descripción para la expresión.
  5. Configure la expresión mediante el proceso descrito en Configurar la expresión de directiva avanzada. Un mensaje en la barra de estado indica que la expresión de directiva se ha configurado correctamente.