SwitchFilter
Verifies that a specified condition is met. If the condition is met or no condition is specified, the request is diverted to the associated handler, with no further processing by the switch filter.
Usage
{
"name": string,
"type": "SwitchFilter",
"config": {
"onRequest": [
{
"condition": runtime expression<boolean>,
"handler": Handler reference
},
...
],
"onResponse": [
{
"condition": runtime expression<boolean>,
"handler": Handler reference
},
...
]
}
}
Properties
"onRequest"
: array of objects, optional-
Conditions to test (and handler to dispatch to, if
true
) before the request is handled. "onResponse"
: array of objects, optional-
Conditions to test (and handler to dispatch to, if
true
) after the response is handled. "condition"
: runtime expression<boolean>, optional-
A flag to indicate that a condition is met:
-
true
: The request is dispatched to the handler. -
false
: The request is not dispatched to the handler, and the next condition in the list is tried.When the last condition in the list returns
false
, the request is passed to the next filter or handler in the chain.
Default:
${true}
-
"handler"
: Handler reference, required-
The Handler to which IG dispaches the request if the associated condition yields
true
.Provide the name of a Handler object defined in the heap or an inline Handler configuration object.
Example
This example intercepts the response if it is equal to 200 and executes the LoginRequestHandler. This filter might be used in a login flow where the request for the login page must go through to the target, but the response should be intercepted in order to send the login form to the application. This is typical for scenarios where there is a hidden value or cookie returned in the login page, which must be sent in the login form:
{
"name": "SwitchFilter",
"type": "SwitchFilter",
"config": {
"onResponse": [
{
"condition": "${response.status.code == 200}",
"handler": "LoginRequestHandler"
}
]
}
}