Skip to content

Instantly share code, notes, and snippets.

@DAddYE
Created February 24, 2010 10:42
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save DAddYE/313322 to your computer and use it in GitHub Desktop.
require 'rack/utils'
##
# FlashMiddleware help you passing your session in the URI, when it should be in the cookie.
#
# This code it's only performed when:
#
# env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
#
# ==== Usage
#
# use FlashMiddleware, session_id
#
class FlashMiddleware
def initialize(app, session_key = 'session_id')
@app = app
@session_key = session_key.to_s
end
def call(env)
if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
params = ::Rack::Request.new(env).params
env['rack.session'] ||= {}
env['rack.session'][@session_key.to_sym] = params[@session_key] if params[@session_key].present?
end
@app.call(env)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment