lib/airbrake/rails/controller_methods.rb in airbrake-3.0.9 vs lib/airbrake/rails/controller_methods.rb in airbrake-3.1.0

- old
+ new

@@ -1,8 +1,18 @@ module Airbrake module Rails module ControllerMethods + + def airbrake_request_data + { :parameters => airbrake_filter_if_filtering(params.to_hash), + :session_data => airbrake_filter_if_filtering(airbrake_session_data), + :controller => params[:controller], + :action => params[:action], + :url => airbrake_request_url, + :cgi_data => airbrake_filter_if_filtering(request.env) } + end + private # This method should be used for sending manual notifications while you are still # inside the controller. Otherwise it works like Airbrake.notify. def notify_airbrake(hash_or_exception) @@ -11,38 +21,34 @@ end end def airbrake_local_request? if defined?(::Rails.application.config) - ::Rails.application.config.consider_all_requests_local || request.local? + ::Rails.application.config.consider_all_requests_local || (request.local? && (!request.env["HTTP_X_FORWARDED_FOR"])) else - consider_all_requests_local || local_request? + consider_all_requests_local || (local_request? && (!request.env["HTTP_X_FORWARDED_FOR"])) end end def airbrake_ignore_user_agent? #:nodoc: # Rails 1.2.6 doesn't have request.user_agent, so check for it here user_agent = request.respond_to?(:user_agent) ? request.user_agent : request.env["HTTP_USER_AGENT"] Airbrake.configuration.ignore_user_agent.flatten.any? { |ua| ua === user_agent } end - def airbrake_request_data - { :parameters => airbrake_filter_if_filtering(params.to_hash), - :session_data => airbrake_filter_if_filtering(airbrake_session_data), - :controller => params[:controller], - :action => params[:action], - :url => airbrake_request_url, - :cgi_data => airbrake_filter_if_filtering(request.env) } - end def airbrake_filter_if_filtering(hash) return hash if ! hash.is_a?(Hash) - if respond_to?(:filter_parameters) - filter_parameters(hash) rescue hash + + if respond_to?(:filter_parameters) # Rails 2 + filter_parameters(hash) + elsif defined?(ActionDispatch::Http::ParameterFilter) # Rails 3 + ActionDispatch::Http::ParameterFilter.new(::Rails.application.config.filter_parameters).filter(hash) else hash - end + end rescue hash + end def airbrake_session_data if session.respond_to?(:to_hash) session.to_hash