sunlabs.brazil.handler
Class CookieSessionHandler
java.lang.Object
sunlabs.brazil.handler.CookieSessionHandler (view source)
- All Implemented Interfaces:
- Handler
public class CookieSessionHandler
- extends Object
- implements Handler
Handler for creating browser sessions using cookies.
This handler provides a single cookie-id that may be used by
other handlers.
The intent is to require only one cookie per server.
(See also SessionFilter
, which
manages sessions with or without cookies).
The following server properties are used:
- prefix, suffix, glob, match
- Specify the URL that triggers this handler
(See
MatchString
).
If prefix
is specified, it is also used to
instruct the client to limit the scope of the
browser cookie. to that prefix.
- cookie
- the name of the cookie to use (defaults to "cookie").
-
map
- If specified, the
ident
argument to
SessionManager.getSession(java.lang.Object, java.lang.Object, java.lang.Class)
to get the table of valid
cookies, used to map the cookie value to a Session ID. By default,
the Session ID stored in the request is the cookie value itself.
-
exist
- If specified, this means that the Session ID corresponding to the
cookie value must already exist in the
SessionManager
.
Normally, if the cookie was not present, a new cookie is
automatically created.
- persist
- If set, cookies persist across browser sessions
-
session
- The name of the request property that the Session ID will be stored
in, to be passed to downstream handler. The default value is
"SessionID". If the property already exists, and is not empty,
no action will be taken.
If a cookie was returned from the browser, the property:
gotCookie
is set to the cookie name. Otherwise it is left unset.
cookieName
public String cookieName
ident
public String ident
mustExist
public boolean mustExist
persist
public boolean persist
session
public String session
CookieSessionHandler
public CookieSessionHandler()
init
public boolean init(Server server,
String propsPrefix)
- Description copied from interface:
Handler
- Initializes the handler.
- Specified by:
init
in interface Handler
- Parameters:
server
- The HTTP server that created this Handler
.
Typical Handler
s will use Server.props
to obtain run-time configuration information.propsPrefix
- The handlers name.
The string this Handler
may prepend to all
of the keys that it uses to extract configuration information
from Server.props
. This is set (by the Server
and ChainHandler
) to help avoid configuration parameter
namespace collisions.
- Returns:
true
if this Handler
initialized
successfully, false
otherwise. If
false
is returned, this Handler
should not be used.
respond
public boolean respond(Request request)
throws IOException
- Description copied from interface:
Handler
- Responds to an HTTP request.
- Specified by:
respond
in interface Handler
- Parameters:
request
- The Request
object that represents the HTTP
request.
- Returns:
true
if the request was handled. A request was
handled if a response was supplied to the client, typically
by calling Request.sendResponse()
or
Request.sendError
.
- Throws:
IOException
- if there was an I/O error while sending the response to
the client. Typically, in that case, the Server
will (try to) send an error message to the client and then
close the client's connection.
The IOException
should not be used to silently
ignore problems such as being unable to access some
server-side resource (for example getting a
FileNotFoundException
due to not being able
to open a file). In that case, the Handler
's
duty is to turn that IOException
into a
HTTP response indicating, in this case, that a file could
not be found.