Class: Aws::SessionStore::DynamoDB::RackMiddleware
- Inherits:
-
Rack::Session::Abstract::Persisted
- Object
- Rack::Session::Abstract::Persisted
- Aws::SessionStore::DynamoDB::RackMiddleware
- Defined in:
- lib/aws/session_store/dynamo_db/rack_middleware.rb
Overview
This class is an ID based Session Store Rack Middleware that uses a DynamoDB backend for session storage.
Instance Attribute Summary collapse
-
#config ⇒ Configuration
readonly
An instance of Configuration that is used for this middleware.
Instance Method Summary collapse
-
#delete_session(req, sid, options) ⇒ String
Destroys session and removes session from database.
-
#find_session(req, sid) ⇒ Object
Get session from the database or create a new session.
-
#initialize(app, options = {}) ⇒ RackMiddleware
constructor
Initializes SessionStore middleware.
-
#write_session(req, sid, session, options) ⇒ Hash, false
Sets the session in the database after packing data.
Constructor Details
#initialize(app, options = {}) ⇒ RackMiddleware
Initializes SessionStore middleware.
17 18 19 20 21 22 |
# File 'lib/aws/session_store/dynamo_db/rack_middleware.rb', line 17 def initialize(app, = {}) super @config = Configuration.new() validate_config set_locking_strategy end |
Instance Attribute Details
#config ⇒ Configuration (readonly)
Returns An instance of Configuration that is used for this middleware.
59 60 61 |
# File 'lib/aws/session_store/dynamo_db/rack_middleware.rb', line 59 def config @config end |
Instance Method Details
#delete_session(req, sid, options) ⇒ String
Destroys session and removes session from database.
52 53 54 55 |
# File 'lib/aws/session_store/dynamo_db/rack_middleware.rb', line 52 def delete_session(req, sid, ) @lock.delete_session(req.env, sid) generate_sid unless [:drop] end |
#find_session(req, sid) ⇒ Object
Get session from the database or create a new session.
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/aws/session_store/dynamo_db/rack_middleware.rb', line 28 def find_session(req, sid) case verify_hmac(sid) when nil set_new_session_properties(req.env) when false handle_error { raise Errors::InvalidIDError } set_new_session_properties(req.env) else data = @lock.get_session_data(req.env, sid) [sid, data || {}] end end |
#write_session(req, sid, session, options) ⇒ Hash, false
Sets the session in the database after packing data.
45 46 47 |
# File 'lib/aws/session_store/dynamo_db/rack_middleware.rb', line 45 def write_session(req, sid, session, ) @lock.set_session_data(req.env, sid, session, ) end |