httplog
httplog copied to clipboard
Allow regexp on params filter
Regexps are more powerful:
HttpLog.configure do |config|
config.filter_parameters = (
/date_?of_?birth|dob/
)
end
module HttpLog
class << self
def masked_data(msg)
case msg
when Hash
Hash[msg.map { |key, value| [key, mask?(key) ? PARAM_MASK : masked_data(value)] }]
when Array
msg.map { |element| masked_data(element) }
else
msg
end
end
# this is slow but not a hotpath, all regexps and strings could be compiled into one regexp.
def mask?(key)
config.filter_parameters.any? do |filter_parameter|
if filter_parameter.is_a?(Regexp)
key =~ filter_parameter
else
key.downcase == filter_parameter
end
end
end
end
end
Same thing, PRs welcome!
Will do!