Skipping body parsing for HAT configuration in IAG

Applies To: Intelligent Application Gateway (IAG)

When configuring host address translation in Whale Communications Intelligent Application Gateway (IAG) 2007, you can specify URLs for which body parsing is skipped.

Changes to parsing behavior

IAG Service Pack 1 Update 4 introduced a registry entry (MaxBodyBufferSize) to specify a limit for the maximum size of a downloadable file. When this update is applied, IAG accumulates and tries to parse all data, and any file larger that the defined maximum size is blocked, regardless of file type. IAG Service Pack 1 Update 5, and IAG Service Pack 2 introduced a change in parsing behavior. IAG no longer accumulates and parses data by default. Instead, parsing behavior is based on the parsing options you configure, as follows:

  • In the Don't parse the bodies of the response to these requests list, if the requested URL matches any URL on this list, the response body will not be accumulated for parsing.

  • In the Search and Replace Response Content list, if the requested URL matches any URL on this list, and the requested URL does not match the parameters of the previous rule, the response body will be accumulated for parsing

  • In the Search and Replace on Content-Type list, if the requested URL does not match the parameters of either of the two previous rules, and the content type matches any content type on this list, the response body will be accumulated for parsing

To revert to parsing behavior prior to Update 5, for Basic and Webmail trunks, create a new registry entry BasicTrunkAccumulateResData at location HKEY_LOCAL_MACHINE\SOFTWARE\WhaleCom\e-Gap\von\UrlFilter\WhlFiltSNT and set a DWORD value of 1.

Specify URLs for which body parsing is not enabled per application server

The following procedure describes how you configure this option for responses. Use the same steps to configure this option for requests.

To configure responses where body parsing is skipped

  1. In the IAG Configuration console, click the required portal.

  2. Next to Advanced Trunk Configuration, click Configure, and then click the Application Access Portal tab.

  3. In Skip Body Parsing, next to Don’t parse the bodies of the response to these requests, click Edit. The URLs without body parsing in response dialog box is displayed.

  4. In Servers, click Add. The Add Server dialog box is displayed.

  5. Enter the name of the site on which the page or pages reside by using regular expressions, and then click OK.

  6. In URLs, click Add. The Add URL dialog box is displayed.

    Note

    For each site you configure, you must also configure at least one URL. You cannot configure the option for the entire site.

  7. Enter a URL or a range of URLs by using regular expressions, and then click OK.

    Tip

    To display the URLs that are configured for a site, select the site in the Server list.

  8. Repeat the process for all the sites and URLs for which you wish to skip body parsing.

    In the URL without body parsing in response dialog box, click OK. Once the trunk is activated, the body of the responses you configured here will not be parsed.

Specify URLs for which body parsing is not enabled per application type

You can also skip body parsing per application type by configuring the application access portal (AAP) configuration file. Note that the definitions in the AAP configuration file are made separately for requests and responses by using the corresponding XML elements:

  • For requests, use <URLS_WITHOUT_BODY_PARSING_REQ>

  • For responses, use <URLS_WITHOUT_BODY_PARSING_RES>

Description

Defines the URLs of servers or application types where body parsing is skipped in requests.

Usage

Only one <URLS_WITHOUT_BODY_PARSING_REQ> element can reside in the AAP configuration file.

Attributes & Attribute Values

None.

Child Elements

  • <URLS_WITHOUT_BODY_PARSING_REQ> must contain at least:

    • One <SERVER> element.

      Or,

    • One <APPLICATION> element.

  • <URLS_WITHOUT_BODY_PARSING_REQ> can contain an unlimited number of <SERVER> and <APPLICATION> elements.

<URLS_WITHOUT_BODY_PARSING_RES>

Description

Defines the URLs of servers or application types where body parsing is skipped in responses.

Usage

Only one <URLS_WITHOUT_BODY_PARSING_RES> element can reside in the AAP configuration file.

Attributes & Attribute Values

None.

Child Elements

  • <URLS_WITHOUT_BODY_PARSING_RES> must contain at least:

    • One <SERVER> element.

      Or,

    • One <APPLICATION> element.

  • <URLS_WITHOUT_BODY_PARSING_RES> can contain an unlimited number of <SERVER> and <APPLICATION> elements.

[<URLS_WITHOUT_BODY_PARSING_REQ>]¦[<URLS_WITHOUT_BODY_PARSING_RES>] > [<SERVER>]

<SERVER>

Description

Child element of <URLS_WITHOUT_BODY_PARSING_REQ> or of <URLS_WITHOUT_BODY_PARSING_RES>. Defines a server where body parsing in requests or responses is skipped, respectively.

Tip

In the IAG Configuration console, you can define the Skip Body Parsing option for specific URLs directly, as described in Skip Body Parsing per Application Server.

Usage

  • Optional.

  • An unlimited number of <SERVER> elements can be nested under <URLS_WITHOUT_BODY_PARSING_REQ> or

    <URLS_WITHOUT_BODY_PARSING_RES>.

Usage

  • Optional.

  • An unlimited number of <SERVER> elements can be nested under <URLS_WITHOUT_BODY_PARSING_REQ> or

    URLS_WITHOUT_BODY_PARSING_RES>.

Attributes & Attribute Values

None.

Child Elements

<SERVER> must contain the following:

  • Only one <NAME> element.

  • One or more <URL> elements.

Optionally, <SERVER> can also contain one <PORT> element.

[<URLS_WITHOUT_BODY_PARSING_REQ>]¦[<URLS_WITHOUT_BODY_PARSING_RES>] > [<SERVER>] > [<NAME>]

<NAME>

Description

Child element of <SERVER>. Name of the server where body parsing in requests or responses is skipped.

Usage

  • Only one <NAME> element must be nested under each <SERVER> element.

  • Can be defined using one of the following methods:

    • Server name or a range of names by using regular expressions.

    • Subnet by using the mask attribute. For example:

      For subnet class A:

      <SERVER_NAME mask="255.0.0.0">63.0.0.0</SERVER``_NAME>

      For subnet class B:

      <SERVER_NAME mask="255.255.0.0">160.12.0.0</SERVER_NAME>

      For subnet class C:

      <SERVER_NAME mask="255.255.255.0">192.168.1.0</SERVER_NAME>

    Note

    In this syntax, enter the actual IP address, not regular expressions.

Tip

For examples of the use of both methods in a <NAME> element, see the section “Sample Code: <URLS_WITHOUT_BODY_PARSING_REQ> and <URLS_WITHOUT_BODY_PARSING_RES>.

Attributes & Attribute Values

Attribute Values Type or comments

mask

subnet mask

Optional. Used to define a subnet mask.

Child Elements

None.

[<URLS_WITHOUT_BODY_PARSING_REQ>]¦[<URLS_WITHOUT_BODY_PARSING_RES>] > [<SERVER>] > [<URL>]

<URL>

Description

Child element of <SERVER>. Defines the URL of the server where body parsing in requests or responses is skipped.

Usage

  • At least one <URL> element must be nested under each <SERVER> element.

  • An unlimited number of <URL> elements can be nested under each <SERVER> element.

  • Takes regular expressions.

Attributes & Attribute Values

None.

Child Elements

None.

[<URLS_WITHOUT_BODY_PARSING_REQ>]¦[<URLS_WITHOUT_BODY_PARSING_RES>] > [<SERVER>] > [<PORT>]

<PORT>

Description

Child element of <SERVER>. Specifies the port number, on the server defined in <SERVER>, where body parsing of requests or responses is skipped.

Usage

  • Optional.

  • Only one <PORT> element can be nested under each <SERVER> element.

Attributes & Attribute Values

None.

Child Elements

None.

[<URLS_WITHOUT_BODY_PARSING_REQ>]¦[<URLS_WITHOUT_BODY_PARSING_RES>] > [<APPLICATION>]

<APPLICATION>

Description

Child element of <URLS_WITHOUT_BODY_PARSING_REQ> or of <URLS_WITHOUT_BODY_PARSING_RES>. Defines an application type where body parsing is skipped in requests or responses, respectively.

Usage

  • Optional.

  • An unlimited number of <APPLICATION> elements can be nested under <URLS_WITHOUT_BODY_PARSING_REQ> or

    <URLS_WITHOUT_BODY_PARSING_RES>.

Attributes & Attribute Values

None.

Child Elements

<APPLICATION> must contain the following:

  • Only one <APPLICATION_TYPE>.

  • One or more <URL> elements.

[<URLS_WITHOUT_BODY_PARSING_REQ>]¦[<URLS_WITHOUT_BODY_PARSING_RES>] > [<APPLICATION>] > [<APPLICATION_TYPE>]

<APPLICATION_TYPE>

Description

Child element of <APPLICATION>. Type of application where body parsing in requests or responses is skipped.

Usage

  • Only one <APPLICATION_TYPE> element must be nested under each <APPLICATION> element.

Attributes & Attribute Values

None.

Child Elements

None.

[<URLS_WITHOUT_BODY_PARSING_REQ>]¦[<URLS_WITHOUT_BODY_PARSING_RES>] > [<APPLICATION>] > [<URL>]

<URL>

Description

Child element of <APPLICATION>. Defines a URL where body parsing in requests or responses is skipped, for the application type defined in <APPLICATION_TYPE>.

Usage

  • At least one <URL> element must be nested under each <APPLICATION> element.

  • An unlimited number of <URL> elements can be nested under each <APPLICATION> element.

  • Takes regular expressions.

Attributes & Attribute Values

None.

Child Elements

None.

Sample Code: <URLS_WITHOUT_BODY_PARSING_REQ> and <URLS_WITHOUT_BODY_PARSING_RES>

<URLS_WITHOUT_BODY_PARSING_REQ>

<SERVER>

<NAME mask="">192\.168\.1\.20</NAME>

<PORT>8080</PORT>

<URL>/scripts/upload\.asp</URL>

<URL>/upload/</URL>

</SERVER>

<SERVER>

<NAME mask="255.255.255.0">192.168.1.0</NAME>

<URL>.*/upload.asp</URL>

</SERVER>

<APPLICATION>

<APPLICATION_TYPE>OWA2003</APPLICATION_TYPE>

<URL>/exchange/[^/\*'"`|]*/deleted items/[^/]+\.asp/

</URL>

</APPLICATION>

</URLS_WITHOUT_BODY_PARSING_REQ>

<URLS_WITHOUT_BODY_PARSING_RES>

<SERVER>

<NAME mask="">192\.168\.1\.20</NAME>

<PORT>8080</PORT>

<URL>/work/documents/.*\.(htm|html)</URL>

</SERVER>

<SERVER>

<NAME mask="255.255.255.0">192.168.1.0</NAME>

<URL>/management/docs/.*</URL>

<URL>/home/.*\.(htm|html)</URL>

</SERVER>

<APPLICATION>

<APPLICATION_TYPE>OWA2003</APPLICATION_TYPE>

<URL>/exchange/.*/Inbox/.*\.EML\?cmd=preview</URL>

</APPLICATION>

</URLS_WITHOUT_BODY_PARSING_RES>