## org.w3c.www.protocol.http
Interface RequestFilter

All Known Subinterfaces:
  PropRequestFilter

All Known Implementing Classes:
  LocalAuthFilter

public interface RequestFilter

The request filter interface. Filters allow application wide request enhancement before they are being actually emited on the wire.

Once registered to the HttpManager, a request filter will be invoked before the request is actualy sent to the wire, and right after the reply headers are available, only if its current scope matches the request URL.

Method Summary
`boolean` `exceptionFilter(Request request, HttpException ex)` An exception occured while talking to target server.
`Reply` `ingoingFilter(Request request)` The request pre-processing hook.
`Reply` `outgoingFilter(Request request, Reply reply)` The request post-processing hook.
`void` `sync()` Synchronized any pending state into stable storage.

Method Detail

### ingoingFilter

    public Reply ingoingFilter(Request request)
                        throws HttpException

  The request pre-processing hook. Before each request is launched, all filters will be called back through this method. They will generally set up additional request header fields to enhance the request.
  Parameters:
    `request` - The request that is about to be launched.
  Returns:
    An instance of Reply if the filter could handle the request, or null if processing should continue normally.
  Throws:
    HttpException - If the filter is supposed to fulfill the request, but some error happened during that processing.

### outgoingFilter

    public Reply outgoingFilter(Request request,
                                Reply reply)
                         throws HttpException

  The request post-processing hook. After each request has been replied to by the target server (be it a proxy or the actual origin server), each filter's outgoingFilter method is called.

  It gets the original request, and the actual reply as a parameter, and should return whatever reply it wants the caller to get.

  Parameters:
    `request` - The original (handled) request.
    `reply` - The reply, as emited by the target server, or constructed by some other filter.
  Throws:
    HttpException - If the reply emitted by the server is not a valid HTTP reply.

### exceptionFilter

    public boolean exceptionFilter(Request request,
                                   HttpException ex)

  An exception occured while talking to target server. This method is triggered by the HttpManager, when the target server (which can be a proxy for that request) was not reachable, or some network error occured while emitting the request or reading the reply headers.
  Parameters:
    `request` - The request whose processing triggered the exception.
    `ex` - The exception that was triggered.
  Returns:
    A boolean, true if that filter did influence the target server used to fulfill the request, and it has fixed the problem in such a way that the request should be retried.

### sync

    public void sync()

  Synchronized any pending state into stable storage. If the filter maintains some in-memory cached state, this method should ensure that cached data are saved to stable storage.