Class: ActionDispatch::Cookies::EncryptedKeyRotatingCookieJar
- Inherits:
-
AbstractCookieJar
- Object
- AbstractCookieJar
- ActionDispatch::Cookies::EncryptedKeyRotatingCookieJar
- Includes:
- SerializedCookieJars
- Defined in:
- lib/action_dispatch/middleware/cookies.rb
Overview
:nodoc:
Constant Summary
Constants included from SerializedCookieJars
SerializedCookieJars::MARSHAL_SIGNATURE, SerializedCookieJars::SERIALIZER
Instance Method Summary collapse
-
#initialize(parent_jar) ⇒ EncryptedKeyRotatingCookieJar
constructor
A new instance of EncryptedKeyRotatingCookieJar.
Methods inherited from AbstractCookieJar
Methods included from ChainedCookieJars
#encrypted, #permanent, #signed, #signed_or_encrypted
Constructor Details
#initialize(parent_jar) ⇒ EncryptedKeyRotatingCookieJar
Returns a new instance of EncryptedKeyRotatingCookieJar.
606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 |
# File 'lib/action_dispatch/middleware/cookies.rb', line 606 def initialize(parent_jar) super if request. key_len = ActiveSupport::MessageEncryptor.key_len() secret = request.key_generator.generate_key(request., key_len) @encryptor = ActiveSupport::MessageEncryptor.new(secret, cipher: , serializer: SERIALIZER) else key_len = ActiveSupport::MessageEncryptor.key_len("aes-256-cbc") secret = request.key_generator.generate_key(request., key_len) sign_secret = request.key_generator.generate_key(request.) @encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret, cipher: "aes-256-cbc", serializer: SERIALIZER) end request..encrypted.each do |*secrets, **| @encryptor.rotate(*secrets, serializer: SERIALIZER, **) end if legacy_cipher = "aes-256-cbc" secret = request.key_generator.generate_key(request., ActiveSupport::MessageEncryptor.key_len(legacy_cipher)) sign_secret = request.key_generator.generate_key(request.) @encryptor.rotate(secret, sign_secret, cipher: legacy_cipher, digest: digest, serializer: SERIALIZER) end if @legacy_verifier = ActiveSupport::MessageVerifier.new(request.secret_token, digest: digest, serializer: SERIALIZER) end end |