HTTP rule expression builder

Use the subexpression builder to build complex rule conditions from subexpressions by using AND, OR, NOT and parenthetical grouping. The rule builder validates the rule when you apply the changes, and alerts you to mismatched parentheses, and unsupported logic operators.

To view this administrative console page, click Servers > Server types > On demand routers > ODR > On demand router properties > Routing policy HTTP rules > Add > Subexpression builder.

To modify rules with the rule builder, you must have administrative privileges.

Select operand

Routing and service policy operands

Depending on the protocol you select, different operands are displayed. The following table includes the operand names as displayed in the console, the actual operand as it will appear in the expression, the valid protocols for each operand, and the description for each operand.

Table 1. Operands
Request variable Valid protocols Description
virtualhost

HTTP

SOAP

Virtual host target of the request, used for configuring Web applications to a particular host name.
virtualport

HTTP

Virtual port target of the request, used for configuring Web applications to a particular port.
uri

HTTP

Uniform Resource Identifier. To get the path of the request. If the URL was "http://host:port/path?p1=v1", the path is "path".
User ID   Returns the user id for the authenticated user who sent the request.
Group IDs   Returns a list of group names for the authenticated user who sent the request.
Request query parameter name   A header name and value.
For example, the expression queryparm$timezone='EST' tests a request to see if the request contains an HTTP query parameter named timezone with a value of EST. To test for presence or absence of a query parameter, use one of the following forms:
queryparm$timezone IS NOT NULL 
queryparm$timezone IS NULL
Request header name

A header name and value.
For example, the expression header$Host='localhost' tests a request to see if it contains an HTTP host header with a value of localhost. To test for presence or absence of the host header, use one of the following expressions:
header$Host IS NOT NULL 
header$Host IS NULL
Cookie header name   A cookie name.
For example, the expression cookie$My_Cookie_Name='My_Cookie_Value' tests a request to see if it contains a cookie named My_Cookie_Name with a value of My_Cookie_Value. To test for the presence or absence of a particular cookie, use one of the following expressions:
cookie$MyCookieName IS NOT NULL 
cookie$MyCookieName IS NULL
HTTPMethod

HTTP

SOAP

The HTTP method for the request. Possible values are POST, GET, PUT, and DELETE.
clienthost

HTTP

SOAP

IIOP

SIP

The fully-qualified client host name. This is the value of the internet protocol (IP) command host name. This operand does not support numeric operators such as >, >=, <, <=.
clientipv4

HTTP

SOAP

SIP

The IP address of the client computer using the Internet Protocol version 4 (IPv4) dotted quad address type n.n.n.n.
clientipv6

HTTP

SOAP

SIP

The Internet Protocol version 6 (IPv6) 128-bit address type of x:x:x:x:x:x:x:x following Request for Comments 1924 (RFC 1924) of the client computer.
serverhost

HTTP

SOAP

IIOP

SIP

The fully-qualified host name of the server. This operand does not support numeric operators such as >, >=, <, <=.
serveripv4

HTTP

SOAP

SIP

The IP address of the server computer using the IPv4 dotted quad address type n.n.n.n.
serveripv6

HTTP

SOAP

SIP

The IPv6 128-bit address type of x:x:x:x:x:x:x:x following RFC 1924 of the server computer.
port

HTTP

SOAP

IIOP

SIP

The listening port on which the request was received.
protocol

HTTP

SOAP

The communications protocol that transmits the request. Currently supported protocols are HTTP, HTTPS, SOAP, and SOAPS.
virtualportal

HTTP

SOAP

Virtual portals are created within WebSphere® Portal Server, and Intelligent Management supports this operand for better integration with WebSphere Portal Server. The virtual portal is the request URL minus the context root for the WebSphere Portal application's Web module. If a given request matches the virtual portal defined, then the routing action defined for that rule is taken.
time

HTTP

SOAP

IIOP

This operand is used to define the date and time of day that a given request must be honored. Two optional fields are StartTime and EndTime. If a request is received outside of that defined window, the request will not be processed.

The Start Time and End Time fields each have the following format: dayOfWeek/dayOfMonth/month/year::hour:minute:second.

For example, Thursday, the 11th of April, year 2007 at 1:03:45 PM is specified as:

Thu/11/Apr/2007::13:03:45

Any field can use a wild card with the value *. For example, the 1st of each month is specified as */1.

The dayofWeek values are Sun, Mon, Tue, Wed, Thu, Fri, Sat, and the dayOfMonth values range from 1-31.

The month value is a non-numeric value representing the twelve months: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.

The year value is comprised of the year's four digits. For example, 2007.

The hour value is the hour of day in the 24-hour clock. For example, 8am is represented as ::8. The minute and second are integers ranging from 0-59.

The forward slash (/) is used to separate date parameters, the double colon (::) is used to separate the date and time values, and the colon (:) is used to separate the time of day parameters. Note that it is the boolean result of the entire rule in which the time operand is used that determines the routing action taken.

percentage$<val>

HTTP

SOAP

IIOP

SIP

The percentage operand evaluates to true, a fixed percentage of the time. For example, percentage$50 evaluates to true on average 50% of the time.
rampup$<startTime>$<completionTime>

HTTP

SOAP

IIOP

SIP

The rampup operand evaluates to true a variable percentage of the time. It always evaluates to false before <startTime> and to true after <completionTime>. As time progresses from <startTime> to <completionTime>, it evaluates to true, a linearly increasing percentage.

The format of <startTime> and <completionTime> is day/month/year::hour:min:sec.

where day is the day of the month, month is one of the twelve months: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, year is the 4 digit year, hour is the 2 digit hour of the 24 hour clock, and min and sec are 2 digit values for minute and second, respectively.

For example,

rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 begins to occasionally evaluate to true at 8 AM on Jan 1, 2007 and always evaluates to true by ramp up completion time at 5 PM of the same day.

Operator

  • Equals Ignore Case (EQUALSIGNORECASE): Identical to 'String = String', except that the case of the strings is ignored. So, 'ABC' EQUALSIGNORECASE 'abc' would evaluate to true. ('ABC' = 'abc') evaluates to false.
  • Not Equals ( <> ): The not equal operator expresses that the operand value is not equal to the value you enter.
  • In (IN): This operator expresses an operand with multiple values in a single expression. For example, if, for an operand called port, you want to express that the port value can be any or all of the values such as 9080, 9090, 9091, the expression fragment is port IN (9080,9090,9091). How the values inside the brackets are expressed depends on the data type of port. If port is an integer, the correct syntax is the values without quote marks. If port is a string, the correct syntax is port IN (‘9080’,‘9090’,‘9091’).
  • Like (LIKE): This operator expresses pattern matching for string operand values. The value must contain the wildcard character percent sign (%) in the position where the pattern matching starts. For example, the expression, host LIKE %blanca, matches the word blanca, or any other word that ends in blanca, while the expression host LIKE blanca% matches the word blanca or any other word that starts with blanca, and the expression, host LIKE %blanca% matches the word blanca or any word that has blanca embedded in it.
  • Like Ignore Case (LIKEIGNORECASE): Identical to 'string like string' except that the case of the strings is ignored.
  • Is Not Null (IS NOT NULL): This operator expresses that a validation of the query shows that the requested parameter exists.
  • Concatenate (+): This operator expresses two character strings joined together: 'abc' + 'def' = 'abcdef'.
  • Like In (LIKEIN): This operator expresses string likein (string1, string2, string3, etc.) evaluates to true if the string to the left of "likein" matches one or more of the strings (stringN)
  • Is Null (IS NULL): This operator expresses that a validation of the query shows that the requested parameter does not exist.
  • Equals ( = ): The equality operator expresses a case-sensitive match.

Value

Depending on the operator that you choose, type in a value for the subexpression that you are choosing to create.

Generate subexpression

Generate the subexpression as a result of the operand, operator, and values that you have specified.

Append

Click to append to the box on the rules panel.



File name: http_rulebuilder_detail.html