Allows you to specify sensitive parameters which will be replaced from the request log by looking in the query string of the request and all subhashes of the params hash to filter. If a block is given, each key and value of the params hash and all subhashes is passed to it, the value or key can be replaced using String#replace or similar method.

Examples:

  env["action_dispatch.parameter_filter"] = [:password]
  => replaces the value to all keys matching /password/i with "[FILTERED]"

  env["action_dispatch.parameter_filter"] = [:foo, "bar"]
  => replaces the value to all keys matching /foo|bar/i with "[FILTERED]"

  env["action_dispatch.parameter_filter"] = lambda do |k,v|
    v.reverse! if k =~ /secret/i
  end
  => reverses the value to all keys matching /secret/i
Methods
E
F
P
Constants
KV_RE = '[^&;=]+'
PAIR_RE = %r{(#{KV_RE})=(#{KV_RE})}
Instance Public methods
filtered_env()

Return a hash of request.env with all sensitive data replaced.

    # File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 37
37:       def filtered_env
38:         @filtered_env ||= env_filter.filter(@env)
39:       end
filtered_parameters()

Return a hash of parameters with all sensitive data replaced.

    # File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 32
32:       def filtered_parameters
33:         @filtered_parameters ||= parameter_filter.filter(parameters)
34:       end
filtered_path()

Reconstructed a path with all sensitive GET parameters replaced.

    # File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 42
42:       def filtered_path
43:         @filtered_path ||= query_string.empty? ? path : "#{path}?#{filtered_query_string}"
44:       end
Instance Protected methods
env_filter()
    # File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 52
52:       def env_filter
53:         parameter_filter_for(Array.wrap(@env["action_dispatch.parameter_filter"]) << /RAW_POST_DATA/)
54:       end
filtered_query_string()
    # File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 62
62:       def filtered_query_string
63:         query_string.gsub(PAIR_RE) do |_|
64:           parameter_filter.filter([[$1, $2]]).first.join("=")
65:         end
66:       end
parameter_filter()
    # File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 48
48:       def parameter_filter
49:         parameter_filter_for(@env["action_dispatch.parameter_filter"])
50:       end
parameter_filter_for(filters)
    # File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 56
56:       def parameter_filter_for(filters)
57:         @@parameter_filter_for[filters] ||= ParameterFilter.new(filters)
58:       end