class Trackets::RackEnvSanitizer

Attributes

rack_env[R]

Public Class Methods

new(rack_env) click to toggle source
# File lib/trackets/rack_env_sanitizer.rb, line 6
def initialize(rack_env)
  @rack_env = rack_env
end

Public Instance Methods

filtered() click to toggle source
# File lib/trackets/rack_env_sanitizer.rb, line 10
def filtered
  whitelisted_env.inject({}) do |result, (key, val)|
    result[key] = filter_val(val) if key && val =~ /\S/
    result
  end
end

Private Instance Methods

filter_val(value) click to toggle source
# File lib/trackets/rack_env_sanitizer.rb, line 22
def filter_val(value)
  value.scan(/(?:^|&|\?)([^=?&]+)=([^&]+)/).each do |match|
    next unless Trackets.configuration.blacklisted_key?(match[0], rack_env)
    value.gsub!(/#{match[1]}/, '[FILTERED]')
  end

  value
end
whitelisted_env() click to toggle source
# File lib/trackets/rack_env_sanitizer.rb, line 18
def whitelisted_env
  rack_env.reject { |k,v| !Trackets.configuration.whitelisted_env.include?(k) }
end