Class: RailsSessionKeyRotator
- Inherits:
-
Object
- Object
- RailsSessionKeyRotator
- Defined in:
- lib/rails_session_key_rotator.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, options = {}) ⇒ RailsSessionKeyRotator
constructor
A new instance of RailsSessionKeyRotator.
Constructor Details
#initialize(app, options = {}) ⇒ RailsSessionKeyRotator
Returns a new instance of RailsSessionKeyRotator.
5 6 7 8 9 10 11 12 |
# File 'lib/rails_session_key_rotator.rb', line 5 def initialize(app, = {}) @app = app @session_cookie_key = .fetch(:key) old_secret = .fetch(:old_secret) new_secret = .fetch(:new_secret) @old_verifier = ActiveSupport::MessageVerifier.new(old_secret) @new_verifier = ActiveSupport::MessageVerifier.new(new_secret) end |
Instance Method Details
#call(env) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/rails_session_key_rotator.rb', line 14 def call(env) request = Rack::Request.new(env) = request.[@session_cookie_key] session_data = verify_old_session_data() if .present? if session_data.present? request.[@session_cookie_key] = @new_verifier.generate(session_data) ActiveSupport::Notifications.instrument('rails_session_key_rotator.upgraded', request) end @app.call(env) end |