NAME
Dancer::Session::ElasticSearch - ElasticSearch based session engine for Dancer
SYNOPSIS
This module implements a session engine storing session variables in an ElasticSearch index. It also signs IDs to thwart tampering and guessing.
USAGE
In config.yml
session: "ElasticSearch"
session_options:
connection:
... settings to pass to ElasticSearch
index: "my_index" # defaults to "session"
type: "my_session" # defaults to "session"
signing:
secret: "ldjaldjaklsdanm.m" # required for signing IDs
length: 10 # length of the salt and hash. defaults to 10
fast: set to true to not hit the backend each time you get or set something
This session engine will not remove expired sessions on the server, but as it's ElasticSearch you can set a ttl on the documents when you create your ES index and let ES do the work for you.
METHODS
create()
Creates a new session. Returns the session object.
flush()
Write the session to ES. Returns the session object.
retrieve($id)
Look for a session with the given id.
Returns the session object if found, undef
if not.
destroy()
Remove the current session object from ES
fast()
Accessor for the fast setting.
INTERNAL METHODS
_es
Connect to ElasticSearch and returns a handle
init
Overload the init method in Dancer::Session::Abstract to not
create an ID as we will use the ElasticSearch ID instead.
_verify($string)
Verifies a signed ID
_sign($id)
Signs an ID
_hash($id, $salt)
Creates a hash from the $id, $salt and secret key as found in the config
FORK ME
Fork a copy for yourself from https://github.com/babf/Dancer-Session-ElasticSearch