module Mmtrix::Agent::ParameterFiltering

Public Instance Methods

apply_filters(env, params) click to toggle source
# File lib/mmtrix/agent/parameter_filtering.rb, line 10
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) click to toggle source
# File lib/mmtrix/agent/parameter_filtering.rb, line 22
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_rails_request_parameters(params) click to toggle source
# File lib/mmtrix/agent/parameter_filtering.rb, line 36
def filter_rails_request_parameters(params)
  result = params.dup
  result.delete("controller")
  result.delete("action")
  result
end
filter_using_rails(env, params) click to toggle source
# File lib/mmtrix/agent/parameter_filtering.rb, line 16
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