通过使用 AND、OR、NOT 和括号进行分组,可以使用子表达式构建器,根据子表达式构建复杂的规则条件。应用更改时,规则构建器将对规则进行验证。如果找到未配对的括号以及不支持的逻辑运算符,那么将发出警报。
要查看此管理控制台页面,请单击服务器 > 随需应变路由器 > odr_name > 随需应变路由器属性 > 通用服务器集群服务策略 > work_class_name > 添加规则 > 子表达式构建器。
要使用子表达式构建器来修改规则,您必须拥有管理员管理特权。
根据所选协议的不同,将显示不同的操作数。下表列示了控制台中显示的操作数名称、表达式中出现的实际操作数、每个操作数的有效协议以及每个操作数的描述。
显示的操作数 | 操作数 | 有效协议 | 描述 |
---|---|---|---|
应用程序名 | 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 是否存在,请使用下列其中一个表达式:
|
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 查询参数。要测试某个查询参数是否存在,请使用下列其中一个命令:
|
角色 | 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]]]。
正斜杠(/)用来分隔日期参数,双冒号(::)用来分隔日期和时间参数,冒号(:)用来分隔时间参数。注意,由整个规则的布尔结果(使用了时间操作数)确定所执行的路由操作。 |
用户标识 | uid$<name> | HTTP 和 SOAP | 请求发送方的用户标识。 |
虚拟门户网站 | virtualportal | HTTP 和 SOAP | 虚拟门户网站是在 WebSphere Portal Server 中创建的。为了更好地与 WebSphere Portal Server 集成,WebSphere Extended Deployment 支持此操作数。虚拟门户网站是请求 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 |
根据所选运算符的不同,输入要创建的子表达式的值。
根据已指定的操作数、运算符和值,生成子表达式。
复制这个子表达式并将其粘贴到规则中。