Sha256: c2aac8cd31d37f0af345a28db0060c11344f909bfa43cabfddb2b161c76b87e0

Contents?: true

Size: 1.05 KB

Versions: 35

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Datadog
  module AppSec
    module Contrib
      module Rails
        # Normalized extration of data from ActionDispatch::Request
        module Request
          def self.parsed_body(request)
            # force body parameter parsing, which is done lazily by Rails
            request.parameters

            # usually Hash<String,String> but can be a more complex
            # Hash<String,String||Array||Hash> when e.g coming from JSON or
            # with Rails advanced param square bracket parsing
            body = request.env['action_dispatch.request.request_parameters']

            return if body.nil?

            body.reject do |k, _v|
              request.env['action_dispatch.request.path_parameters'].key?(k)
            end
          end

          def self.route_params(request)
            excluded = [:controller, :action]

            request.env['action_dispatch.request.path_parameters'].reject do |k, _v|
              excluded.include?(k)
            end
          end
        end
      end
    end
  end
end

Version data entries

35 entries across 35 versions & 2 rubygems

Version Path
ddtrace-1.19.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.18.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.17.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.16.2 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.16.1 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.16.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.15.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.14.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.13.1 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.13.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.12.1 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.12.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.11.1 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.11.0 lib/datadog/appsec/contrib/rails/request.rb
ddtrace-1.11.0.beta1 lib/datadog/appsec/contrib/rails/request.rb