The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

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

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

SEE ALSO

Dancer, Dancer::Session