配置命名高级策略表达式
您可以配置命名表达式并随时在策略中使用该表达式时引用该名称,而无需在多个策略中多次重新键入同一表达式。例如,您可以创建以下命名表达式:
然后,您可以在策略表达式中使用这些命名表达式。例如,以下是基于上述示例的法律表达式:
您可以使用高级策略表达式的名称作为函数的前缀。命名表达式可以是简单表达式或复合表达式。该函数必须是能够对命名表达式返回的数据类型进行操作的函数。
示例 1:作为前缀的简单命名表达式
以下用于标识文本字符串的简单命名表达式可用作 AFTER_STR(“”) 函数的前缀,该函数处理文本数据:
HTTP.REQ.BODY(1000)
如果表达式的名称为 Top1KB,则可以使用 top1KB.AFTER_STR(“用户名”)而不是 HTTP.REQ.BODY (1000) .AFTER_STR(“用户名”)。
示例 2:复合命名表达式作为前缀
您可以创建一个名为 basic_header_value 的复合表达式来连接请求中的用户名、冒号 (:) 和用户的密码,如下所示:
add policy expression basic_header_value "HTTP.REQ.USER.NAME + \":\" + HTTP.REQ.USER.PASSWD"
然后,您可以在重写操作中使用表达式的名称,如以下示例所示:
add rewrite action insert_b64encoded_authorization insert_http_header authorization '"Basic " + basic_header_value.b64encode'
在示例中,在用于构造自定义标头值的表达式中,B64 编码算法应用于复合名为表达式返回的字符串。
您还可以使用命名表达式(单独或作为函数的前缀)在重写中为替换目标创建文本表达式。
使用 CLI 配置命名的高级策略表达式
在命令提示符下,键入以下命令以配置命名表达式并验证配置:
- add policy expression \\ - show policy expression \
示例:
> 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
表达式最多可包含 1,499 个字符。
使用 GUI 配置命名表达式
- 在导航窗格中,展开AppExpert,然后单击表达式。
- 单击高级表达式。
- 单击添加。
- 输入表达式的名称和描述。
- 使用配置高级策略表达式中描述的过程配置表达式。状态栏中的消息将指示已成功配置策略表达式。
本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
DIESER DIENST KANN ÜBERSETZUNGEN ENTHALTEN, DIE VON GOOGLE BEREITGESTELLT WERDEN. GOOGLE LEHNT JEDE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG IN BEZUG AUF DIE ÜBERSETZUNGEN AB, EINSCHLIESSLICH JEGLICHER GEWÄHRLEISTUNG DER GENAUIGKEIT, ZUVERLÄSSIGKEIT UND JEGLICHER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER.
CE SERVICE PEUT CONTENIR DES TRADUCTIONS FOURNIES PAR GOOGLE. GOOGLE EXCLUT TOUTE GARANTIE RELATIVE AUX TRADUCTIONS, EXPRESSE OU IMPLICITE, Y COMPRIS TOUTE GARANTIE D'EXACTITUDE, DE FIABILITÉ ET TOUTE GARANTIE IMPLICITE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON.
ESTE SERVICIO PUEDE CONTENER TRADUCCIONES CON TECNOLOGÍA DE GOOGLE. GOOGLE RENUNCIA A TODAS LAS GARANTÍAS RELACIONADAS CON LAS TRADUCCIONES, TANTO IMPLÍCITAS COMO EXPLÍCITAS, INCLUIDAS LAS GARANTÍAS DE EXACTITUD, FIABILIDAD Y OTRAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN EN PARTICULAR Y AUSENCIA DE INFRACCIÓN DE DERECHOS.
本服务可能包含由 Google 提供技术支持的翻译。Google 对这些翻译内容不做任何明示或暗示的保证,包括对准确性、可靠性的任何保证以及对适销性、特定用途的适用性和非侵权性的任何暗示保证。
このサービスには、Google が提供する翻訳が含まれている可能性があります。Google は翻訳について、明示的か黙示的かを問わず、精度と信頼性に関するあらゆる保証、および商品性、特定目的への適合性、第三者の権利を侵害しないことに関するあらゆる黙示的保証を含め、一切保証しません。
ESTE SERVIÇO PODE CONTER TRADUÇÕES FORNECIDAS PELO GOOGLE. O GOOGLE SE EXIME DE TODAS AS GARANTIAS RELACIONADAS COM AS TRADUÇÕES, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER GARANTIA DE PRECISÃO, CONFIABILIDADE E QUALQUER GARANTIA IMPLÍCITA DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRAÇÃO.