Previous Topic: Forward and Redirect Syntax

Next Topic: nete:default

nete:cond

The definition for the nete:cond element is:

<!ELEMENT nete:cond (nete:case+,nete:default?)>

In addition, the nete:cond element has the following attributes:

<!ATTLIST nete:cond type (header | host | uri | query) #REQUIRED
criteria (equals | beginswith | endswith | contains) "equals"
headername CDATA #IMPLIED>

The nete:cond element specifies a condition that will be evaluated to determine how the SPS handles incoming requests. This element must include an attribute to be evaluated by the SPS.

Possible attributes, as defined in the ATTLIST element, include:

header

Specifies an HTTP header. HTTP headers are name-value pairs which can be retrieved from a user directory by SiteMinder. If you select header as the type, you must also specify the name of the header. The following is an example of a nete:cond element using header as the type:

<nete:cond type="header" headername="USER_AGENT">

This element indicates that a header will be used to determine the destination of a request, and that the header to be evaluated by the SPS is USER_AGENT. The actual destinations for requests are determined by nete:case elements which are children of nete:cond elements as described in the next section.

Note: HTTP headers generated by SiteMinder responses may be specified in nete:cond elements.

host

Specifies a host name in deployments where the SPS proxies for multiple virtual hosts.

Port numbers are considered part of the host, so you can use the endswith criteria, described later, in conjunction with the host condition to route requests by port number.

query

Specifies the query string portion of the URI that follows the '?' character. This is similar to a nete:cond that makes use of the URI as follows:

URI

Specifies universal resource indicator, which is the portion of a requested URL that follows the server name.

You can use the endswith criteria in conjunction with the URI condition to route requests by file extension.

One of the type attributes described above must be included in the nete:cond element. In addition, the nete:cond element must specify a criteria that defines the comparison that the proxy engine executes on the value of the condition for an incoming request. Possible criteria are:

equals

Indicates that the value of the type attribute of the nete:cond parent element must equal the contents of the value attribute of the nete:case element to act on a request.

beginswith

Indicates that the value of the type attribute of the nete:cond parent element must begin with the contents of the value attribute of the nete:case element to act on a request.

endswith

Indicates that the value of the type attribute of the nete:cond parent element must end with the contents of the value attribute of the nete:case element to act on a request.

contains

Indicates that the value of the type attribute of the nete:cond parent element must contain the contents of the value attribute of the nete:case element to act on a request.

Note: If no criteria are specified, the SPS assumes the default criteria of equals.

All nete:cond elements except those using the header type take the following form:

<nete:cond type="condition_type" criteria="equals|beginswith|endswith|contains">
condition_type

Indicates a condition type of host, URI, query, or header.

For example: <nete:cond type="host" criteria="equals">

Note: Conditions that use headers as the comparison require an additional argument of headername="value" where value is the name of the HTTP or SiteMinder header.

Finally, each nete:cond element must have one or more nete:case child elements. The nete:case children provide the unique values that the SPS uses to route requests to appropriate destinations.