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表达式的值con数量简单,建造identifica una cadena de texto, se puede utilizar como prefijo de la
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比如En la表达式的值,它对位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 - show policy expression
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 un máximo de 1.499 caracteres.
Configurar una expresión con nombre mediante la interfaz gráfica de usuario
- En el panel de navegación, expandaAppExperty, a continuación, haga clic enExpresiones.
- Haga clic enExpresiones avanzadas.
- Haga clic enAdd.
- Introduzca un nombre y una descripción para la expresión.
- Configure la expresión mediante el proceso descrito enConfigurar expresión de directiva avanzada. Un mensaje en la barra de estado indica que la expresión de directiva se ha configurado correctamente.