rabbit.filter
Class DontCacheFilter

java.lang.Object
  extended by rabbit.filter.DontCacheFilter
All Implemented Interfaces:
HttpFilter

public class DontCacheFilter
extends Object
implements HttpFilter

This is a class that makes sure the proxy doesnt caches certain pages. It features two types of filtering: either on the URL or the mime type.

URL based matching.
It uses the config option dontCacheURLmatching with a default value of the empty string. This value is a regex.
This method should be used on requests, that is append this class to httpinfilters in rabbit.conf to use URL matching.

Mime type based matching.
It uses the config option dontCacheMimematching with a default value of the empty string. This value is a regexp.
This method should be used on responses, that is append this class to httpoutfilters in rabbit.conf to use mime type matching.

Author:
Robert Olofsson

Constructor Summary
DontCacheFilter()
          Create a new DontCacheFilter.
 
Method Summary
 HttpHeader doHttpInFiltering(SocketChannel socket, HttpHeader header, Connection con)
          Test if a socket/header combination is valid or return a new HttpHeader.
 HttpHeader doHttpOutFiltering(SocketChannel socket, HttpHeader header, Connection con)
          Test if a socket/header combination is valid or return a new HttpHeader.
 void setup(SProperties properties)
          Setup this class with the given properties.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DontCacheFilter

public DontCacheFilter()
Create a new DontCacheFilter.

Method Detail

doHttpInFiltering

public HttpHeader doHttpInFiltering(SocketChannel socket,
                                    HttpHeader header,
                                    Connection con)
Test if a socket/header combination is valid or return a new HttpHeader. If the request matches a certain criteria dont cache it. This filter is good for pages that done send cache-control headers correctly. This method uses the URL of the request to determine if the resource may be cached.

Specified by:
doHttpInFiltering in interface HttpFilter
Parameters:
socket - the SocketChannel that made the request.
header - the actual request made.
con - the Connection handling the request.
Returns:
This method always returns null.

doHttpOutFiltering

public HttpHeader doHttpOutFiltering(SocketChannel socket,
                                     HttpHeader header,
                                     Connection con)
Test if a socket/header combination is valid or return a new HttpHeader. If the request matches a certain criteria dont cache it. This filter is good for pages that done send cache-control headers correctly. This method uses the mime type of the response to determine if the resource may be cached.

Specified by:
doHttpOutFiltering in interface HttpFilter
Parameters:
socket - the SocketChannel that made the request.
header - the actual request made.
con - the Connection handling the request.
Returns:
null

setup

public void setup(SProperties properties)
Setup this class with the given properties.

Specified by:
setup in interface HttpFilter
Parameters:
properties - the new configuration of this class.