Class: ActionDispatch::Cookies::SignedKeyRotatingCookieJar
Do not use. This class is for internal use only.
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
AbstractCookieJar
|
|
Instance Chain:
|
|
Inherits: |
ActionDispatch::Cookies::AbstractCookieJar
|
Defined in: | actionpack/lib/action_dispatch/middleware/cookies.rb |
Constant Summary
SerializedCookieJars
- Included
Class Method Summary
Instance Attribute Summary
ChainedCookieJars
- Included
Instance Method Summary
- #commit(name, options) private
- #parse(name, signed_message, purpose: nil) private
SerializedCookieJars
- Included
AbstractCookieJar
- Inherited
ChainedCookieJars
- Included
#encrypted | Returns a jar that’ll automatically encrypt cookie values before sending them to the client and will decrypt them for read. |
#permanent | Returns a jar that’ll automatically set the assigned cookies to have an expiration date 20 years from now. |
#signed | Returns a jar that’ll automatically generate a signed representation of cookie value and verify it when reading from the cookie again. |
#signed_or_encrypted | Returns the |
#encrypted_cookie_cipher, #signed_cookie_digest |
Constructor Details
.new(parent_jar) ⇒ SignedKeyRotatingCookieJar
# File 'actionpack/lib/action_dispatch/middleware/cookies.rb', line 622
def initialize(parent_jar) super secret = request.key_generator.generate_key(request. ) @verifier = ActiveSupport::MessageVerifier.new(secret, digest: , serializer: SERIALIZER) request. .signed.each do |(*secrets)| = secrets. @verifier.rotate(*secrets, serializer: SERIALIZER, ** ) end end
Instance Method Details
#commit(name, options) (private)
[ GitHub ]# File 'actionpack/lib/action_dispatch/middleware/cookies.rb', line 641
def commit(name, ) super [:value] = @verifier.generate( [:value], ** (name, )) check_for_overflow!(name, ) end
#parse(name, signed_message, purpose: nil) (private)
[ GitHub ]# File 'actionpack/lib/action_dispatch/middleware/cookies.rb', line 635
def parse(name, , purpose: nil) rotated = false data = @verifier.verified(, purpose: purpose, on_rotation: -> { rotated = true }) super(name, data, force_reserialize: rotated) end