Module: OneApm::Support::ParameterFiltering

Extended by:
ParameterFiltering
Included in:
ParameterFiltering
Defined in:
lib/one_apm/support/parameter_filtering.rb

Instance Method Summary collapse

Instance Method Details

#apply_filters(env, params) ⇒ Object



8
9
10
11
12
# File 'lib/one_apm/support/parameter_filtering.rb', line 8

def apply_filters(env, params)
  params = filter_using_rails(env, params)
  params = filter_rack_file_data(env, params)
  params
end

#filter_rack_file_data(env, params) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/one_apm/support/parameter_filtering.rb', line 20

def filter_rack_file_data(env, params)
  content_type = env["CONTENT_TYPE"]
  multipart = content_type && 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_using_rails(env, params) ⇒ Object



14
15
16
17
18
# File 'lib/one_apm/support/parameter_filtering.rb', line 14

def filter_using_rails(env, params)
  return params unless defined?(ActionDispatch::Http::ParameterFilter) && env.key?("action_dispatch.parameter_filter")
  filters = env["action_dispatch.parameter_filter"]
  ActionDispatch::Http::ParameterFilter.new(filters).filter(params)
end