Package sunlabs.brazil.filter
Class UrlSessionFilter
- java.lang.Object
-
- sunlabs.brazil.filter.UrlSessionFilter
-
public class UrlSessionFilter extends java.lang.Object implements Filter
Sample filter to use url's instead of cookies for sessions. When html files are delivered, all URL's back to this host are changed to add in the session information. When requests are made, the session info is stripped off the URL, which is passed to the rest of the handlers.Note: This fiter has been superceded by the
SessionFilter
. It is included for illustrative purposes only.- Version:
- 2.3
- Author:
- Stephen Uhler
-
-
Field Summary
Fields Modifier and Type Field Description java.lang.String
session
-
Constructor Summary
Constructors Constructor Description UrlSessionFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
filter(Request request, MimeHeaders headers, byte[] content)
Rewrite all the url's, adding the session id to the endboolean
init(Server server, java.lang.String propsPrefix)
Initializes the handler.boolean
respond(Request request)
Extract the cookie out of the URL, rewriting the url as needed.boolean
shouldFilter(Request request, MimeHeaders headers)
We have the results, only filter if html
-
-
-
Method Detail
-
init
public boolean init(Server server, java.lang.String propsPrefix)
Description copied from interface:Handler
Initializes the handler.- Specified by:
init
in interfaceHandler
- Parameters:
server
- The HTTP server that created thisHandler
. TypicalHandler
s will useServer.props
to obtain run-time configuration information.propsPrefix
- The handlers name. The string thisHandler
may prepend to all of the keys that it uses to extract configuration information fromServer.props
. This is set (by theServer
andChainHandler
) to help avoid configuration parameter namespace collisions.- Returns:
true
if thisHandler
initialized successfully,false
otherwise. Iffalse
is returned, thisHandler
should not be used.
-
respond
public boolean respond(Request request)
Extract the cookie out of the URL, rewriting the url as needed. Add the session info at the end of the url: /a/b.html -> /a/b.html$xxxx where xxx is the session This gets called before the original request is made.
-
shouldFilter
public boolean shouldFilter(Request request, MimeHeaders headers)
We have the results, only filter if html- Specified by:
shouldFilter
in interfaceFilter
- Parameters:
request
- The in-progress HTTP request.headers
- The MIME headers generated by the wrappedHandler
.- Returns:
true
if this filter would like to examine and possibly rewrite the content,false
otherwise.
-
filter
public byte[] filter(Request request, MimeHeaders headers, byte[] content)
Rewrite all the url's, adding the session id to the end- Specified by:
filter
in interfaceFilter
- Parameters:
request
- The finished HTTP request.headers
- The MIME headers generated by theHandler
.content
- The output from theHandler
that thisFilter
may rewrite.- Returns:
- The rewritten content. The
Filter
may return the originalcontent
unchanged. TheFilter
may returnnull
to indicate that theFilterHandler
should stop processing the request and should not return any content to the client.
-
-