Citrix ADC

Configurar expresiones de directivas 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 expresió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 jurídica basada en los ejemplos anteriores:

Esta expresión   Esa expresión

Puede utilizar el nombre de una expresión de directiva avanzada como prefijo de una función. La expresión nombrada puede ser una expresión simple o una expresión compuesta. La función debe ser una función que pueda funcionar con 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 de 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 denominada compuesta como prefijo

Puede crear una expresión compuesta denominada basic_header_value para concatenar el nombre de usuario de una solicitud, dos puntos (:) y la contraseña del usuario, de la siguiente manera:

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 siguiente ejemplo:

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

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 el compuesto denominado expression.

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

Configurar una expresión de directiva avanzada con nombre mediante la CLI

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

-  add policy expression <name><value>

-  show policy expression <name>
<!--NeedCopy-->

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

La expresión puede tener un máximo de 1.499 caracteres.

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

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