Content Insertion
The IAG provides the ability to insert content into HTTP responses for a specified URI. This is commonly referred to as content injection.
The following diagram outlines content injection processing:

Options
The available configuration options are defined in the Content Injection YAML reference.
Usage
The location can be either matched against a full line in the response, or any specific text in the response. This is controlled by the 'full_line_match' configuration entry.
Full Line Matching
- The location can be pattern matched against a line in the response using the
*
and?
wildcard characters; - The maximum length of a line which can be matched by this mechanism is 8192 bytes;
- The pattern match is case-sensitive.
The content is then inserted immediately before the matching line.
- You must include a new line character at the end of the content if you want it to be inserted as a separate line. Otherwise, IAG adds the content to the start of the matching line.
Partial Line Matching
- An exact match is required when performing a partial line match. In other words, pattern matching characters are not supported.
- The text comparison is case-sensitive.
The content can either be inserted immediately prior to the matching text, or it can replace the matching text. This is controlled by the 'replace_match' configuration entry.
Example
Using a simple HTML page:
<html>
<body>
Insert content before here:
Data
More data
</body>
</html>
The following example will insert a line of text before the string 'Insert content before here':
policies:
content_injection:
- name: inject_text
paths:
- "/myapp/sampleResource.html"
location: "Insert content before here*"
content: "<hr/>This text was injected using content injection.<hr/>"
Requests to https://<IAG container>/myapp/sampleResource.html will return a HTML page that contains the injected content.
<html>
<body>
<hr/>This text was injected using content injection.<hr/>Insert content before here:
Data
More data
</body>
</html>
Updated about 2 years ago