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.Stringsession
-
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 endbooleaninit(Server server, java.lang.String propsPrefix)Initializes the handler.booleanrespond(Request request)Extract the cookie out of the URL, rewriting the url as needed.booleanshouldFilter(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:HandlerInitializes the handler.- Specified by:
initin interfaceHandler- Parameters:
server- The HTTP server that created thisHandler. TypicalHandlers will useServer.propsto obtain run-time configuration information.propsPrefix- The handlers name. The string thisHandlermay prepend to all of the keys that it uses to extract configuration information fromServer.props. This is set (by theServerandChainHandler) to help avoid configuration parameter namespace collisions.- Returns:
trueif thisHandlerinitialized successfully,falseotherwise. Iffalseis returned, thisHandlershould 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:
shouldFilterin interfaceFilter- Parameters:
request- The in-progress HTTP request.headers- The MIME headers generated by the wrappedHandler.- Returns:
trueif this filter would like to examine and possibly rewrite the content,falseotherwise.
-
filter
public byte[] filter(Request request, MimeHeaders headers, byte[] content)
Rewrite all the url's, adding the session id to the end- Specified by:
filterin interfaceFilter- Parameters:
request- The finished HTTP request.headers- The MIME headers generated by theHandler.content- The output from theHandlerthat thisFiltermay rewrite.- Returns:
- The rewritten content. The
Filtermay return the originalcontentunchanged. TheFiltermay returnnullto indicate that theFilterHandlershould stop processing the request and should not return any content to the client.
-
-