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