Sha256: 6d78b8bc73b0ef0f73bb865dcfb871e6b6bf94bea2749e32a639a1da7c6afa0a

Contents?: true

Size: 1.2 KB

Versions: 20

Compression:

Stored size: 1.2 KB

Contents

require 'honeybadger/util/sanitizer'

module Honeybadger
  module Util
    # Internal: Constructs/sanitizes request data for notices and traces.
    module RequestPayload
      # Internal: Default values to use for request data.
      DEFAULTS = {
        url: nil,
        component: nil,
        action: nil,
        params: {}.freeze,
        session: {}.freeze,
        cgi_data: {}.freeze
      }.freeze

      # Internal: Allowed keys.
      KEYS = DEFAULTS.keys.freeze

      # Internal: The cgi_data key where the raw Cookie header is stored.
      HTTP_COOKIE_KEY = 'HTTP_COOKIE'.freeze

      def self.build(opts = {})
        sanitizer = opts.fetch(:sanitizer) { Sanitizer.new }

        payload = DEFAULTS.dup
        KEYS.each do |key|
          next unless opts[key]
          payload[key] = sanitizer.sanitize(opts[key])
        end

        payload[:session] = opts[:session][:data] if opts[:session] && opts[:session][:data]
        payload[:url] = sanitizer.filter_url(payload[:url]) if payload[:url]
        if payload[:cgi_data][HTTP_COOKIE_KEY]
          payload[:cgi_data][HTTP_COOKIE_KEY] = sanitizer.filter_cookies(payload[:cgi_data][HTTP_COOKIE_KEY])
        end

        payload
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
honeybadger-2.6.1 lib/honeybadger/util/request_payload.rb
honeybadger-2.6.0 lib/honeybadger/util/request_payload.rb
honeybadger-2.5.3 lib/honeybadger/util/request_payload.rb
honeybadger-2.5.2 lib/honeybadger/util/request_payload.rb
honeybadger-2.5.1 lib/honeybadger/util/request_payload.rb
honeybadger-2.5.0 lib/honeybadger/util/request_payload.rb
honeybadger-2.4.1 lib/honeybadger/util/request_payload.rb
honeybadger-2.4.0 lib/honeybadger/util/request_payload.rb
honeybadger-2.3.3 lib/honeybadger/util/request_payload.rb
honeybadger-2.3.2 lib/honeybadger/util/request_payload.rb
honeybadger-2.3.2.beta.1 lib/honeybadger/util/request_payload.rb
honeybadger-2.3.1 lib/honeybadger/util/request_payload.rb
honeybadger-2.3.0 lib/honeybadger/util/request_payload.rb
honeybadger-2.2.0 lib/honeybadger/util/request_payload.rb
honeybadger-2.2.0.beta.1 lib/honeybadger/util/request_payload.rb
honeybadger-2.1.6.beta.1 lib/honeybadger/util/request_payload.rb
honeybadger-2.1.5 lib/honeybadger/util/request_payload.rb
honeybadger-2.1.4 lib/honeybadger/util/request_payload.rb
honeybadger-2.1.3 lib/honeybadger/util/request_payload.rb
honeybadger-2.1.1 lib/honeybadger/util/request_payload.rb