Introduction
An evidence key filter lets a caller know if a given key value is included or excluded.
For example, each flow element has an evidence key filter which will only include key values that the flow element can make use of.
Additionally, the evidence key filter can indicate the relative importance or order of each key value that it includes.
See the Specification for more technical details.
Usage
Evidence key filters are used by flow data to generate data keys. These data keys can then used in caching. This allows the data key to contain the minimum amount of necessary information to determine if a given flow data will result in the same output from a given aspect engine as another, regardless of any other values that may be present in the evidence.
Evidence key filters can also be used by Pipeline callers to restrict the amount of evidence they supply, to only that which is needed. The web integration feature will do this automatically for many languages and web frameworks.
Implementations
Whitelist filter
The whitelist filter is a very simple filter that will include any evidence key names that are in a list supplied at construction time.
Filter aggregator
The filter aggregator combines multiple filters together using a logical OR approach, i.e. if any one of the child filters would allow the inclusion of an evidence key then this aggregator will allow it as well.
Share usage filter
The share usage filter is a specific implementation for 51Degrees usage sharing. It will include anything that meets the following criteria:
- Any HTTP header.
- Any cookie with a name that starts with '51D_'.
- A user session cookie.
- Any evidence that is not a header, cookie or query string parameter.
Configuration options allow this to be tuned to meet your requirements:
- A blacklist of HTTP header names to exclude from sharing can be supplied.
- Sharing of user session cookies can be disabled and the name of the cookie is customizable. (This will default to the appropriate cookie for the language, for example the ASP.NET session cookie in .NET)
- A whitelist of query string parameters to share can be supplied.