module NewRelic::Agent::ParameterFiltering

Public Instance Methods

apply_filters(env, params) click to toggle source
# File lib/new_relic/agent/parameter_filtering.rb, line 28
def apply_filters(env, params)
  if filters = env[ACTION_DISPATCH_PARAMETER_FILTER]
    params = filter_using_rails(params, filters)
  end
  params = filter_rack_file_data(env, params)
  params
end
filter_rack_file_data(env, params) click to toggle source
# File lib/new_relic/agent/parameter_filtering.rb, line 43
def filter_rack_file_data(env, params)
  content_type = env['CONTENT_TYPE']
  multipart = content_type&.start_with?('multipart')

  params.inject({}) do |memo, (k, v)|
    if multipart && v.is_a?(Hash) && v[:tempfile]
      memo[k] = '[FILE]'
    else
      memo[k] = v
    end
    memo
  end
end
filter_rails_request_parameters(params) click to toggle source
# File lib/new_relic/agent/parameter_filtering.rb, line 57
def filter_rails_request_parameters(params)
  result = params.dup
  result.delete('controller')
  result.delete('action')
  result
end
filter_using_rails(params, filters) click to toggle source
# File lib/new_relic/agent/parameter_filtering.rb, line 36
def filter_using_rails(params, filters)
  return params unless rails_filter_class?

  pre_filtered_params = filter_rails_request_parameters(params)
  RAILS_FILTER_CLASS.new(filters).filter(pre_filtered_params)
end

Private Instance Methods

rails_filter_class?() click to toggle source
# File lib/new_relic/agent/parameter_filtering.rb, line 66
def rails_filter_class?
  defined?(RAILS_FILTER_CLASS) && !RAILS_FILTER_CLASS.nil?
end