class DceLti::Middleware::CookieShim

Public Class Methods

new(app) click to toggle source
# File lib/dce_lti/middleware/cookie_shim.rb, line 4
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/dce_lti/middleware/cookie_shim.rb, line 8
def call(env)
  if env['HTTP_COOKIE'].to_s.strip.empty?
    params = parse_query_string(env)
    if params[session_key_name.to_s]
      env['HTTP_COOKIE'] = "#{session_key_name}=#{params[session_key_name.to_s]};shimmed_cookie=1"
    end
  end

  @app.call(env)
end

Private Instance Methods

parse_query_string(env) click to toggle source
# File lib/dce_lti/middleware/cookie_shim.rb, line 21
def parse_query_string(env)
  query_string = env['QUERY_STRING']
  params = {}
  query_string.split('&').each do |parameter|
    (key, value) = parameter.split('=')
    params[key] = value
  end
  params
end
session_key_name() click to toggle source
# File lib/dce_lti/middleware/cookie_shim.rb, line 31
def session_key_name
  @session_key_name ||= Rails.application.config.session_options[:key]
end