lib/contrast/utils/invalid_configuration_util.rb in contrast-agent-3.14.0 vs lib/contrast/utils/invalid_configuration_util.rb in contrast-agent-3.15.0
- old
+ new
@@ -7,11 +7,11 @@
module Utils
# This utility allows us to report invalid configurations detected in
# customer applications, as determined by Configuration Rules at runtime.
module InvalidConfigurationUtil
include Contrast::Components::Interface
- access_component :analysis, :app_context, :logging
+ access_component :analysis, :app_context, :logging, :scope
CS__PATH = 'path'
CS__SESSION_ID = 'sessionId'
CS__SNIPPET = 'snippet'
@@ -21,31 +21,33 @@
# @param user_provided_options [Hash] the configuration value(s) which
# violated the rule
# @param call_location [Thread::Backtrace::Location] the location where
# the bad configuration was set
def cs__report_finding rule_id, user_provided_options, call_location
- finding = Contrast::Api::Dtm::Finding.new
- finding.rule_id = rule_id
- path = call_location.path
- # just get the file name, not the full path
- path = path.split(Contrast::Utils::ObjectShare::SLASH).last
- session_id = user_provided_options[:key].to_s if user_provided_options
+ with_contrast_scope do
+ finding = Contrast::Api::Dtm::Finding.new
+ finding.rule_id = rule_id
+ path = call_location.path
+ # just get the file name, not the full path
+ path = path.split(Contrast::Utils::ObjectShare::SLASH).last
+ session_id = user_provided_options[:key].to_s if user_provided_options
- finding.version = Contrast::Agent::Assess::Policy::TriggerMethod::CURRENT_FINDING_VERSION
- finding.properties[CS__SESSION_ID] = Contrast::Utils::StringUtils.force_utf8(session_id)
- finding.properties[CS__PATH] = Contrast::Utils::StringUtils.force_utf8(path)
- file_path = call_location.absolute_path
- snippet = file_snippet(file_path, call_location)
- finding.properties[CS__SNIPPET] = Contrast::Utils::StringUtils.force_utf8(snippet)
+ finding.version = Contrast::Agent::Assess::Policy::TriggerMethod::CURRENT_FINDING_VERSION
+ finding.properties[CS__SESSION_ID] = Contrast::Utils::StringUtils.force_utf8(session_id)
+ finding.properties[CS__PATH] = Contrast::Utils::StringUtils.force_utf8(path)
+ file_path = call_location.absolute_path
+ snippet = file_snippet(file_path, call_location)
+ finding.properties[CS__SNIPPET] = Contrast::Utils::StringUtils.force_utf8(snippet)
- hash = Contrast::Utils::HashDigest.generate_config_hash(finding)
- finding.hash_code = Contrast::Utils::StringUtils.force_utf8(hash)
- finding.preflight = Contrast::Utils::PreflightUtil.create_preflight(finding)
+ hash = Contrast::Utils::HashDigest.generate_config_hash(finding)
+ finding.hash_code = Contrast::Utils::StringUtils.force_utf8(hash)
+ finding.preflight = Contrast::Utils::PreflightUtil.create_preflight(finding)
- activity = Contrast::Api::Dtm::Activity.new
- activity.findings << finding
+ activity = Contrast::Api::Dtm::Activity.new
+ activity.findings << finding
- Contrast::Agent.messaging_queue.send_event_eventually(activity)
+ Contrast::Agent.messaging_queue.send_event_eventually(activity)
+ end
rescue StandardError => e
logger.error('Unable to build a finding', e, rule: rule_id)
end
private