lib/contrast/components/settings.rb in contrast-agent-6.0.0 vs lib/contrast/components/settings.rb in contrast-agent-6.1.0

- old
+ new

@@ -84,10 +84,14 @@ # mask_http_body [Boolean] Policy flag to enable the use of masking on request body. # rules [Array<Contrast::Agent::Reporting::Settings::SensitiveDataMaskingRule>] # Rules to follow when using the masking. Each rules contains Id [String] # and Keywords [Array<String>]. attr_reader :sensitive_data_masking + # @return [Integer] the time, in ms, that application settings last changed + attr_reader :last_app_update_ms + # @return [Integer] the time, in ms, that server settings last changed + attr_reader :last_server_update_ms def initialize reset_state end @@ -97,10 +101,12 @@ # @param features [Contrast::Api::Settings::ServerFeatures, Contrast::Agent::Reporting::Response] def update_from_server_features features if features.cs__is_a?(Contrast::Agent::Reporting::Response) server_features = features.server_features + return unless server_features + log_file = server_features.log_file log_level = server_features.log_level Contrast::Logger::Log.instance.update(log_file, log_level) if log_file || log_level @protect_state.enabled = server_features.protect.enabled? @assess_state.enabled = server_features.assess.enabled? @@ -108,16 +114,19 @@ else @protect_state.enabled = features.protect_enabled? @assess_state.enabled = features.assess_enabled? @assess_state.sampling_settings = features.assess.sampling end + @last_server_update_ms = Contrast::Utils::Timer.now_ms end # @param features [Contrast::Api::Settings::ApplicationSettings, Contrast::Agent::Reporting::Response] def update_from_application_settings features if features&.class == Contrast::Agent::Reporting::Response settings = features.application_settings + return unless settings + @application_state.modes_by_id = settings.protect.protection_rules_to_settings_hash # TODO: RUBY-1438 this needs to be translated # @application_state.exclusion_matchers = new_vals[:exclusion_matchers] update_sensitive_data_policy(settings.sensitive_data_masking) @assess_state.disabled_assess_rules = settings.assess.disabled_rules @@ -126,9 +135,10 @@ new_vals = features.application_state_translation @application_state.modes_by_id = new_vals[:modes_by_id] @application_state.exclusion_matchers = new_vals[:exclusion_matchers] @assess_state.disabled_assess_rules = new_vals[:disabled_assess_rules] end + @last_app_update_ms = Contrast::Utils::Timer.now_ms end # Wipe state to zero. def reset_state @protect_state = PROTECT_STATE_BASE.dup