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