context_filter #
Description #
The context_filter is used to filter traffic by request context.
Configuration Example #
A simple example is as follows:
flow:
  - name: test
    filter:
      - context_filter:
          context: _ctx.request.path
          message: "request not allowed."
          status: 403
          must: #must match all rules to continue
            prefix:
              - /medcl
            contain:
              - _search
            suffix:
              - _search
            wildcard:
              - /*/_search
            regex:
              - ^/m[\w]+dcl
          must_not: # any match will be filtered
            prefix:
              - /.kibana
              - /_security
              - /_security
              - /gateway_requests*
              - /.reporting
              - /_monitoring/bulk
            contain:
              - _refresh
            suffix:
              - _count
              - _refresh
            wildcard:
              - /*/_refresh
            regex:
              - ^/\.m[\w]+dcl
          should:
            prefix:
              - /medcl
            contain:
              - _search
              - _async_search
            suffix:
              - _refresh
            wildcard:
              - /*/_refresh
            regex:
              - ^/m[\w]+dcl
Parameter Description #
| Name | Type | Description | 
|---|---|---|
| context | string | Context variable | 
| exclude | array | List of variables used to refuse requests to pass through | 
| include | array | List of variables used to allow requests to pass through | 
| must.* | object | Requests are allowed to pass through only when all conditions are met. | 
| must_not.* | object | Requests are allowed to pass through only when none of the conditions are met. | 
| should.* | object | Requests are allowed to pass through when any condition is met. | 
| *.prefix | array | Whether a request begins with a specific character | 
| *.suffix | array | Whether a request ends with a specific character | 
| *.contain | array | Whether a request contains a specific character | 
| *.wildcard | array | Whether a request meets pattern matching rules | 
| *.regex | array | Whether a request meets regular expression matching rules | 
| action | string | Processing action after filtering conditions are met. The value can be set to denyorredirect_flowand the default value isdeny. | 
| status | int | Status code returned after the user-defined mode is matched | 
| message | string | Message text returned in user-defined denymode | 
| flow | string | ID of the flow executed in user-defined redirect_flowmode | 
Note: If only the should condition is met, requests are allowed to pass through only when at least one item in should is met.