org.w3c.www.protocol.http
Interface RequestFilter

All Known Subinterfaces:
PropRequestFilter
All Known Implementing Classes:
AuthFilter, CacheFilter, CookieFilter, DebugFilter, ICPFilter, LocalAuthFilter, MICPFilter, ProxyDispatcher, PushCacheFilter

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

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

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

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

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.