class Raven::Processor::HTTPHeaders
Constants
- DEFAULT_FIELDS
Attributes
sanitize_http_headers[RW]
Public Class Methods
new(client)
click to toggle source
Calls superclass method
Raven::Processor::new
# File lib/raven/processor/http_headers.rb, line 7 def initialize(client) super self.sanitize_http_headers = client.configuration.sanitize_http_headers end
Public Instance Methods
process(data)
click to toggle source
# File lib/raven/processor/http_headers.rb, line 12 def process(data) process_if_symbol_keys(data) if data[:request] process_if_string_keys(data) if data["request"] data end
Private Instance Methods
fields_re()
click to toggle source
# File lib/raven/processor/http_headers.rb, line 41 def fields_re @fields_re ||= /#{(DEFAULT_FIELDS | sanitize_http_headers).map do |f| use_boundary?(f) ? "\\b#{f}\\b" : f end.join("|")}/i end
matches_regexes?(k)
click to toggle source
# File lib/raven/processor/http_headers.rb, line 37 def matches_regexes?(k) fields_re.match(k.to_s) end
process_if_string_keys(data)
click to toggle source
# File lib/raven/processor/http_headers.rb, line 29 def process_if_string_keys(data) return unless data["request"]["headers"] data["request"]["headers"].keys.select { |k| fields_re.match(k) }.each do |k| data["request"]["headers"][k] = STRING_MASK end end
process_if_symbol_keys(data)
click to toggle source
# File lib/raven/processor/http_headers.rb, line 21 def process_if_symbol_keys(data) return unless data[:request][:headers] data[:request][:headers].keys.select { |k| fields_re.match(k.to_s) }.each do |k| data[:request][:headers][k] = STRING_MASK end end
special_characters?(string)
click to toggle source
# File lib/raven/processor/http_headers.rb, line 51 def special_characters?(string) REGEX_SPECIAL_CHARACTERS.select { |r| string.include?(r) }.any? end
use_boundary?(string)
click to toggle source
# File lib/raven/processor/http_headers.rb, line 47 def use_boundary?(string) !DEFAULT_FIELDS.include?(string) && !special_characters?(string) end