Sha256: dbc929189a55ff60bdebd2983658e27df122c92299771524af2c2ab43f78e0c1
Contents?: true
Size: 1.67 KB
Versions: 2
Compression:
Stored size: 1.67 KB
Contents
# Copyright (c) 2023 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true require 'contrast/components/logger' require 'contrast/components/scope' require 'contrast/agent/reporting/reporter' require 'contrast/agent/reporting/masker/masker' module Contrast module Agent # This class is instantiated when we receive a request and the agent is enabled to process that request. It holds # the ruleset that we perform filtering operations on (currently prefilter and postfilter). class RequestHandler include Contrast::Components::Logger::InstanceMethods attr_reader :ruleset, :context # @param context [Contrast::Agent::RequestContext] the context of the request for which this handler applies def initialize context @context = context @ruleset = ::Contrast::AGENT.ruleset end # reports events[Contrast::Agent::Reporting::ObservedRoute] to TS # Other ReportingEvents are handled through batching in the middleware # def report_observed_route return unless (reporter = Contrast::Agent.reporter) return if Contrast::Agent::REQUEST_TRACKER.current&.response&.response_code == 404 reporter.send_event(context.observed_route) if Contrast::ROUTES_SENT.sendable?(context.observed_route) end # If the response is streaming, we should only perform filtering on our stream safe rules def stream_safe_postfilter stream_safe_ruleset = ruleset.select(&:stream_safe?) postfilter_ruleset = Contrast::Agent::RuleSet.new(stream_safe_ruleset) postfilter_ruleset.postfilter end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
contrast-agent-7.6.1 | lib/contrast/agent/request/request_handler.rb |
contrast-agent-7.6.0 | lib/contrast/agent/request/request_handler.rb |