lib/contrast/agent.rb in contrast-agent-3.10.2 vs lib/contrast/agent.rb in contrast-agent-3.11.0

- old
+ new

@@ -1,15 +1,29 @@ # Copyright (c) 2020 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true cs__scoped_require 'English' +# Config interface, also cruft around logger interfaces etc. +# this comes early bc legacy. +cs__scoped_require 'contrast/agent/feature_state' + # This must precede other Contrast C extensions cs__scoped_require 'cs__common/cs__common' +# defining instrumentation, this must precede core extensions +# because they need to register their patches +cs__scoped_require 'contrast/agent/patching/policy/patcher' +cs__scoped_require 'contrast/agent/patching/policy/patch' + +# core extensions +cs__scoped_require 'contrast/extensions/ruby_core/assess' cs__scoped_require 'contrast/extensions/ruby_core/delegator' +cs__scoped_require 'contrast/extensions/ruby_core/inventory' cs__scoped_require 'contrast/extensions/ruby_core/module' +cs__scoped_require 'contrast/extensions/ruby_core/protect' +cs__scoped_require 'contrast/extensions/ruby_core/protect/kernel' cs__scoped_require 'contrast/utils/object_share' cs__scoped_require 'contrast/utils/boolean_util' cs__scoped_require 'contrast/utils/string_utils' cs__scoped_require 'contrast/utils/io_util' @@ -18,24 +32,15 @@ cs__scoped_require 'contrast/common_agent_configuration' cs__scoped_require 'contrast/utils/hash_digest' cs__scoped_require 'contrast/utils/invalid_configuration_util' -cs__scoped_require 'contrast/utils/cache' - # scoping cs__scoped_require 'contrast/agent/scope' cs__scoped_require 'contrast/utils/thread_tracker' -cs__scoped_require 'contrast/api' - -cs__scoped_require 'contrast/utils/resource_loader' -cs__scoped_require 'contrast/utils/duck_utils' -cs__scoped_require 'contrast/agent/tracepoint_hook' -cs__scoped_require 'contrast/agent/at_exit_hook' - # Framework support cs__scoped_require 'contrast/framework/manager' module Contrast # Top namespace of the Agent section. Holds tracking contexts that will be @@ -48,20 +53,21 @@ @_framework_manager ||= Contrast::Framework::Manager.new end end end -# keep tracker of logger updates -cs__scoped_require 'contrast/agent/logger_manager' +cs__scoped_require 'contrast/api' +cs__scoped_require 'contrast/utils/resource_loader' +cs__scoped_require 'contrast/utils/duck_utils' +cs__scoped_require 'contrast/agent/tracepoint_hook' +cs__scoped_require 'contrast/agent/at_exit_hook' + # communication with contrast service cs__scoped_require 'contrast/agent/exclusion_matcher' cs__scoped_require 'contrast/agent/socket_client' -# config interface -cs__scoped_require 'contrast/agent/feature_state' - # threads that handle contrast scope cs__scoped_require 'contrast/agent/thread' # keep track of attacks cs__scoped_require 'contrast/agent/request_context' @@ -70,10 +76,10 @@ # Unconditional early-framework patches. # These happen regardless of analysis mode, & should be lightweight. cs__scoped_require 'contrast/utils/rack_assess_session_cookie' cs__scoped_require 'contrast/utils/rails_assess_configuration' -# Also: should document the necessity of patching this ASAP. + # In Rails, session configuration occurs extremely early & only once. # If we defer our patching of the rails session configuration too long # (i.e., where we normally patch) we will miss the configuration # and will never be able to report session misconfiguration rules. cs__scoped_require 'contrast/extensions/framework/rails/configuration' if defined?(Rails)