class ActionDispatch::Cookies::EncryptedCookieJar
:nodoc:
def [](name)
def [](name) if encrypted_message = @parent_jar[name] decrypt_and_verify(encrypted_message) end end
def []=(name, options)
def []=(name, options) if options.is_a?(Hash) options.symbolize_keys! else options = { :value => options } end options[:value] = @encryptor.encrypt_and_sign(options[:value]) raise CookieOverflow if options[:value].size > MAX_COOKIE_SIZE @parent_jar[name] = options end
def decrypt_and_verify(encrypted_message)
def decrypt_and_verify(encrypted_message) @encryptor.decrypt_and_verify(encrypted_message) rescue ActiveSupport::MessageVerifier::InvalidSignature, ActiveSupport::MessageEncryptor::InvalidMessage nil end
def initialize(parent_jar, key_generator, options = {})
def initialize(parent_jar, key_generator, options = {}) if ActiveSupport::LegacyKeyGenerator === key_generator raise "You didn't set config.secret_key_base, which is required for this cookie jar. " + "Read the upgrade documentation to learn more about this new config option." end @parent_jar = parent_jar @options = options secret = key_generator.generate_key(@options[:encrypted_cookie_salt]) sign_secret = key_generator.generate_key(@options[:encrypted_signed_cookie_salt]) @encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret) end