sunlabs.brazil.proxy
public class HistoryFilter extends Object implements Filter
HistoryFilter
is both a Handler
and a
Filter
that keeps a record of all pages visited by a
given session.
The HistoryFilter
can be used to
make a user's session "mobile" as follows: A user's history
is normally stored with the browser being used, on the user's machine.
If the user runs a different browser or goes to a different machine, the
user's history will not be there. Instead, the user can access the web
via a proxy that keeps track of their history. No matter which browser
the user chooses or machine the user is at, a server running with the
HistoryFilter
will automatically remember and be able to
present the user's history.
The history is kept with respect to a Session ID.
This filter uses the following configuration properties:
prefix
session
nosession
admin
HistoryFilter
to store the history information for the current Session in the
request properties
filter
Regexp
pattern to match
against the "Content-Type" of the result. Setting this also implies
that the HistoryFilter
will be invoked as a
Filter
and not a Handler
. The default
value is "", which indicates that the "Content-Type" is not
examined and that this HistoryFilter
will be invoked
as a Handler
.
Version: 2.2
Field Summary | |
---|---|
String | admin |
Regexp | filter |
String | nosession |
String | session |
String | urlPrefix |
Method Summary | |
---|---|
byte[] | filter(Request request, MimeHeaders headers, byte[] content)
Returns the original content, since this filter does not change
content. |
boolean | init(Server server, String prefix)
Initializes this filter by reading all its configuration properties.
|
boolean | respond(Request request)
If the admin prefix is seen, store the history
information associated with the session in the request properties.
|
boolean | shouldFilter(Request request, MimeHeaders headers)
Called when invoked as a Filter . |
It is an error if the filter
is specified but malformed.
Parameters: server The HTTP server. prefix The configuration property prefix.
Returns: true
if this filter initialized successfully,
false
otherwise.
admin
prefix is seen, store the history
information associated with the session in the request properties.
If invoked as a Handler
and the URL matches the
prefix
, records this page's address in the history.
Parameters: request
The Request
object that represents the HTTP
request.
Returns: false
, indicating that this respond
method ran purely for its side effects.
Filter
. If the URL matches the
prefix
and the returned "Content-Type" matches the
filter
, records this page's address in the history.
Parameters: request The in-progress HTTP request. headers The MIME headers from the result.
Returns: false
indicating that this Filter
does not want to modify the content.