aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/middleware/notifications.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-01-19 12:17:52 +0100
committerJosé Valim <jose.valim@gmail.com>2010-01-19 15:35:23 +0100
commit4e2852a4870677cab12e61795a1c500058f8f111 (patch)
tree8871d57582cf37fdbe1b7814f11e6ba195c0d4c5 /actionpack/lib/action_dispatch/middleware/notifications.rb
parentbec5356f254dad1423bfdc17897589252aae5f44 (diff)
downloadrails-4e2852a4870677cab12e61795a1c500058f8f111.tar.gz
rails-4e2852a4870677cab12e61795a1c500058f8f111.tar.bz2
rails-4e2852a4870677cab12e61795a1c500058f8f111.zip
Do not send rack.input or any other rack information to AD listeners.
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware/notifications.rb')
-rw-r--r--actionpack/lib/action_dispatch/middleware/notifications.rb19
1 files changed, 13 insertions, 6 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/notifications.rb b/actionpack/lib/action_dispatch/middleware/notifications.rb
index 01d2cbb435..c3776d53a8 100644
--- a/actionpack/lib/action_dispatch/middleware/notifications.rb
+++ b/actionpack/lib/action_dispatch/middleware/notifications.rb
@@ -8,17 +8,24 @@ module ActionDispatch
@app = app
end
- def call(stack_env)
- env = stack_env.dup
- ActiveSupport::Notifications.instrument("action_dispatch.before_dispatch", :env => env)
+ def call(env)
+ payload = retrieve_payload_from_env(env)
+ ActiveSupport::Notifications.instrument("action_dispatch.before_dispatch", payload)
- ActiveSupport::Notifications.instrument!("action_dispatch.after_dispatch", :env => env) do
- @app.call(stack_env)
+ ActiveSupport::Notifications.instrument!("action_dispatch.after_dispatch", payload) do
+ @app.call(env)
end
rescue Exception => exception
ActiveSupport::Notifications.instrument('action_dispatch.exception',
- :env => stack_env, :exception => exception)
+ :env => env, :exception => exception)
raise exception
end
+
+ protected
+
+ # Remove any rack related constants from the env, like rack.input.
+ def retrieve_payload_from_env(env)
+ Hash[:env => env.except(*env.keys.select { |k| k.to_s.index("rack.") == 0 })]
+ end
end
end \ No newline at end of file