# Guide to OpenIG
2.2. How It Works In Detail

Sidebar | Prev | Up | Next

### 2.2.6. Filters

Filters are responsible for processing HTTP requests in OpenIG. Filters can be chained together to act on the input stream coming from the browser, or the output stream returned back from the target application. A filter can do something as simple as logging the input and output stream or something more complex, such as processing login pages, fetching user attributes, or transforming content. There are multiple Filters shipped with OpenIG that can be combined in chains to provide very extensible request and response processing features. Custom filters can also be written using the Java SPIs. The following is a list of Filters shipped with OpenIG:

- CookieFilter: The default behavior of OpenIG is to accept and forward all cookies. Since this is not always the desirable behavior, the CookieFilter, when configured, allows you to suppress, manage, and relay cookies.

- CaptureFilter: Captures the HTTP requests being processed by OpenIG. Capture can be used for audit purposes and may also be very useful when analyzing an application or troubleshooting a misbehaving OpenIG. Logs are written to a flat file on the OpenIG host.

- HeaderFilter: The default behavior of OpenIG is to accept and forward all headers. The HeaderFilter can be configured to add additional headers or remove headers on both the HTTP request and the response. It can also be configured to parse and set header values in OpenIG context to allow filters access to the header attributes. This feature is used most commonly when OpenIG is integrated with OpenAM and being fronted by a policy agent.

- AssignmentFilter: Sets values in the HTTP request and response.

- StaticRequestFilter: Creates and sends HTTP GET and POST requests. The request can be formed using parameters from previous processing or statically configured values.

- EntityExtractFilter: Searches for specific content with the body of the requests. For example, it can be used to extract hidden form parameters in a login page, which are needed in the login request.

- ExceptionFilter: Sends users to configured URLs when errors or exceptions occur during request processing or user interactions.

- SwitchFilter: Conditionally diverts the exchange to another handler.

- HttpBasicAuthFilter: Performs HTTP basic authentication to the target application per RFC 2617.

- FileAttributesFilter: Looks up attributes in a flat file with the specified key. The attributes are added to the exchange to be used by subsequent filters or handlers.

- SqlAttributesFilter: Executes an SQL prepared statement with configured parameters. The result is added to the exchange to be used by subsequent filters or handlers.