Citrix ADC

配置命名高级策略表达式

您可以配置命名表达式并随时在策略中使用该表达式时引用该名称,而无需在多个策略中多次重新键入同一表达式。例如,您可以创建以下命名表达式:

  • 这个表达式:

    http.req.body (100) .contains(“这”)

  • 那个表达式:

    http.req.body (100) .contains(“”)

然后,您可以在策略表达式中使用这些命名表达式。例如,以下是基于上述示例的法律表达式:

这个表达 那个表达

您可以使用高级策略表达式的名称作为函数的前缀。命名表达式可以是简单表达式或复合表达式。该函数必须是能够对命名表达式返回的数据类型进行操作的函数。

示例 1:作为前缀的简单命名表达式

以下用于标识文本字符串的简单命名表达式可用作AFTER_STR(“<字符串>”)函数的前缀,该函数处理文本数据:

HTTP.REQ.BODY (1000)

如果表达式的名称为Top1KB,则可以使用top1KB.AFTER_STR(“用户名”)而不是HTTP.REQ.BODY (1000) .AFTER_STR(“用户名”)。

示例 2:复合命名表达式作为前缀

您可以创建一个名为basic_header_value的复合表达式来连接请求中的用户名,冒号(:)和用户的密码,如下所示:

添加策略表达式basic_header_value“HTTP.REQ.USER”。名称+ \":\" + http.req.user.passwd "

然后,您可以在重写操作中使用表达式的名称,如以下示例所示:

添加重写动作insert_b64encoded_authorization ' Basic ' + basic_header_value.b64encode

在示例中,在用于构造自定义标头值的表达式中,b64编码算法应用于复合名为表达式返回的字符串。

您还可以使用命名表达式(单独或作为函数的前缀)在重写中为替换目标创建文本表达式。

使用cli配置命名的高级策略表达式

在命令提示符下,键入以下命令以配置命名表达式并验证配置:

- add策略表达式\\ - show策略表达式\ 

示例:

添加策略表达式myExp "http.req.body(100)。包含(“其他”)”1) Name: myExp Expr:“http.req.body(100)”。包含(“其他”)”点击:0类型:高级完成

表达式最多可包含1499个字符。

使用GUI配置命名表达式

  1. 在导航窗格中,展开AppExpert,然后单击表达式
  2. 单击高级表达式
  3. 单击添加
  4. 输入表达式的名称和描述。
  5. 使用配置高级策略表达式中描述的过程配置表达式。状态栏中的消息将指示已成功配置策略表达式。
配置命名高级策略表达式