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