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