子表达式构建器

通过使用 AND、OR、NOT 和括号进行分组,可以使用子表达式构建器,根据子表达式构建复杂的规则条件。应用更改时,规则构建器将对规则进行验证。如果找到未配对的括号以及不支持的逻辑运算符,那么将发出警报。

要查看此管理控制台页面,请单击服务器 > 随需应变路由器 > odr_name > 随需应变路由器属性 > 通用服务器集群服务策略 > work_class_name > 添加规则 > 子表达式构建器

要使用子表达式构建器来修改规则,您必须拥有管理员管理特权。

选择操作数

根据所选协议的不同,将显示不同的操作数。下表列示了控制台中显示的操作数名称、表达式中出现的实际操作数、每个操作数的有效协议以及每个操作数的描述。

表 1. 操作数及其描述
显示的操作数 操作数 有效协议 描述
应用程序名 application IIOP 包含 EJB 的应用程序的名称。
客户机/主机 clienthost HTTP、SOAP 和 IIOP 标准的客户机/主机名。这是因特网协议(IP)命令主机名的值。此操作数不支持数字运算符,例如 >、>=、< 和 <=
客户机端口 clientport IIOP 客户机端口名。
客户机 IPV4 clientipv4 HTTP 和 SOAP 客户机的因特网协议 V4 地址,使用点分四段地址类型:n.n.n.n
客户机 IPV6 clientipv6 HTTP 和 SOAP 客户机的因特网协议 V6 128 位地址,类型为 x:x:x:x:x:x:x:x
Cookie 头名称 cookie$<name> HTTP 和 SOAP Cookie 名称。例如,表达式 cookie$My_Cookie_Name='My_Cookie_Value' 会测试请求,以了解它是否包含名为 My_Cookie_Name 并且值为 My_Cookie_Value 的 cookie。要测试特定 cookie 是否存在,请使用下列其中一个表达式:
  • cookie$MyCookieName IS NOT NULL
  • cookie$MyCookieName IS NULL
EJB 模块名 ejbmodule IIOP EJB 的模块名。
EJB 名称 ejbname IIOP EJB 的名称。
EJB 方法名 ejbmethod IIOP EJB 中方法的名称。
组标识 gids$<name> HTTP 和 SOAP 请求发送方的组标识。
HTTP 方法 HTTPMethod HTTP 和 SOAP 请求的 HTTP 方法。可能的值是 POST、GET、PUT 和 DELETE。
MIME 类型 MIMEType HTTP 和 SOAP 请求的 MIME 类型。
端口 port HTTP、SOAP 和 IIOP 主机上提供服务所在的侦听端口。
协议 protocol HTTP 和 SOAP 用于传输请求的通信协议。当前支持的协议包括 HTTP、HTTPS、SOAP 和 SOAPS。
请求头名称 header$<name> HTTP 和 SOAP

或值。例如,表达式 header$Host='localhost' 对请求进行测试,以确定该请求是否包含值为 localhost 的 HTTP 主机头。要测试主机头是否存在,请使用下列其中一个表达式:

header$Host IS NOT NULL ,header$Host IS NULL

请求查询参数名 queryparm$<name> HTTP 和 SOAP 请求 URL 中指定的查询参数名。对于每个请求,如果存在查询参数,那么存在那些参数的“名称/值”对映射。随需应变路由器(ODR)使用请求查询参数名作为键来搜索参数映射,如果存在此映射,那么将抽取值以便对规则表达式进行求值。如果该规则匹配,那么将执行指定的操作。否则,将使用定义了该表达式的工作类的缺省操作。
例如,表达式 queryparm$timezone='EST' 对请求进行测试,以确定该请求是否包含名为 timezone 且值为 EST 的 HTTP 查询参数。要测试某个查询参数是否存在,请使用下列其中一个命令:
  • queryparm$timezone IS NOT NULL
  • queryparm$timezone IS NULL
角色 roles$<name> HTTP 和 SOAP 请求发送方的角色。
服务器主机 serverhost HTTP、SOAP 和 IIOP 服务器的标准主机名。此操作数不支持数字运算符,例如 >、>=、< 和 <=。
服务器 IPV4 serveripv4 HTTP 和 SOAP 服务器的 IP 地址,使用 IPv4 点分四段地址类型 n.n.n.n。
服务器 IPV6 serveripv6 HTTP 和 SOAP 服务器的 IPv6 128 位地址,类型为 x:x:x:x:x:x:x:x,遵循 RFC 1924 协议。
时间 time HTTP、SOAP 和 IIOP
时间操作数具有以下格式:[dayOfWeek[/dayOfMonth[/month[/year]]]::][hour[:minute[:second]]]。
  • dayofWeek 值包括 Sun、Mon、Tue、Wed、Thu、Fri 和 Sat。
  • dayOfMonth 包括值 1-31。
  • month 是表示月份的数字编号,1 代表一月,12 代表十二月。例如,数字值 5 代表五月。
  • year 是 4 位的年份。例如,2007
  • hour 是采用 24 小时时钟的小时。
  • minute 是 0-59 的整数。
  • second 是 0-59 的整数。

正斜杠(/)用来分隔日期参数,双冒号(::)用来分隔日期和时间参数,冒号(:)用来分隔时间参数。注意,由整个规则的布尔结果(使用了时间操作数)确定所执行的路由操作。

用户标识 uid$<name> HTTP 和 SOAP 请求发送方的用户标识。
虚拟门户网站 virtualportal HTTP 和 SOAP 虚拟门户网站是在 WebSphere Portal Server 中创建的。为了更好地与 WebSphere Portal Server 集成,WebSphere Virtual Enterprise 支持此操作数。虚拟门户网站是请求 URL 中除 WebSphere Portal 应用程序的 Web 模块上下文根以外的内容。如果给定的请求与所定义的虚拟门户网站匹配,那么将执行为该规则定义的路由操作。
XPath 表达式 xpathexpr SOAP

XPath 字符串表达式具有用于包含 XPath 表达式的必需字段和用于定义局部名称空间的可选字段。如果 XPath 表达式中包含的所有名称空间都是标准名称空间,那么第二个字段是可选字段。如果有多个局部名称空间,那么请使用逗号(,)进行分隔。以下是包含一个局部名称空间定义的 xpathexpr 示例:

xpathexpr$/soap:Envelope/soap:Body/m:getTimeZone/n:clientId$m\\=http://test.classify.ws.ibm.com,n\\=http://test2.classify.ws.ibm.com = \\'1000\\' or operation IS NOT NULL

运算符
  • =:“等于”运算符表示以区分大小写方式进行匹配。
  • <>:“不等于”运算符表示操作数值与输入的值不相等。
  • >:“大于”运算符适用于数字。
  • >= :“大于或等于”运算符适用于数字。
  • < :“小于”运算符适用于数字。
  • <=:“小于或等于”运算符适用于数字。
  • AND:xx AND yy 表示既包含 xx 又包含 yy 的匹配项。
  • BETWEEN:通过将此运算符与 AND 运算符配合使用,可以选择一系列值,包括第一个值(最小值)和最后一个值(最大值)。这两个运算符可以共同对数字和日期执行运算。
  • EXISTS:此布尔运算符对操作数或复合子表达式的结果进行检查,例如,检查某些 HTTP 头元素属性。
  • IN:此运算符表示在单个表达式中包含多个值的操作数。例如,对于名为 port 的操作数,如果要表示端口值可以是任何值或所有值,例如 908090909091,那么表达式片段为 port IN (9080,9090,9091)。括号中值的表示方式取决于端口的数据类型。如果端口是整数,那么正确的语法是一些不带引号的值。如果端口是字符串,那么正确的语法是 port IN ('9080', '9090', '9091')
  • IS NULL:此运算符表示查询验证结果表明所请求的参数不存在。
  • IS NOT NULL:此运算符表示查询验证结果表明所请求的参数存在。
  • LIKE:此运算符表示对字符串操作数值进行模式匹配。在模式匹配的开始位置,值必须包含百分号通配符(%)。例如,表达式 host LIKE %blanca 表示与单词 blanca 或者任何其他以 blanca 结尾的单词匹配;表达式 host LIKE blanca% 表示与单词 blanca 或者任何其他以 blanca 开头的单词匹配;表达式 host LIKE %blanca% 表示与单词 blanca 或者任何嵌入了 blanca 的单词匹配。
  • NOT:对于 NOT xx,此运算符表示未包含 xx 的匹配项。
  • OR:对于 xx OR yy,此运算符表示包含 xxyy 的匹配项。

根据所选运算符的不同,输入要创建的子表达式的值。

构建子表达式

根据已指定的操作数、运算符和值,生成子表达式。

生成的子表达式

复制这个子表达式并将其粘贴到规则中。




WebSphere Virtual Enterprise 信息中心(在线)

相关信息
随需应变路由器路由策略
随需应变路由器服务策略
定义工作类成员关系和规则

wc_rulebuilder_detail