diff --git a/components/security_apps/orchestration/include/declarative_policy_utils.h b/components/security_apps/orchestration/include/declarative_policy_utils.h index 1db30ce..73861c7 100644 --- a/components/security_apps/orchestration/include/declarative_policy_utils.h +++ b/components/security_apps/orchestration/include/declarative_policy_utils.h @@ -80,6 +80,7 @@ public: std::string getUpdate(CheckUpdateRequest &request) override; bool shouldApplyPolicy() override; void turnOffApplyPolicyFlag() override; + void turnOnApplyPolicyFlag() override; std::string getCurrPolicy() override { return curr_policy; } diff --git a/components/security_apps/orchestration/include/i_declarative_policy.h b/components/security_apps/orchestration/include/i_declarative_policy.h index 1390766..0401463 100644 --- a/components/security_apps/orchestration/include/i_declarative_policy.h +++ b/components/security_apps/orchestration/include/i_declarative_policy.h @@ -23,6 +23,7 @@ public: virtual std::string getCurrPolicy() = 0; virtual void turnOffApplyPolicyFlag() = 0; + virtual void turnOnApplyPolicyFlag() = 0; protected: virtual ~I_DeclarativePolicy() {} diff --git a/components/security_apps/orchestration/orchestration_comp.cc b/components/security_apps/orchestration/orchestration_comp.cc index 9b7863b..e3dfb81 100755 --- a/components/security_apps/orchestration/orchestration_comp.cc +++ b/components/security_apps/orchestration/orchestration_comp.cc @@ -221,10 +221,7 @@ private: auto update_communication = Singleton::Consume::by(); auto agent_mode = getOrchestrationMode(); auto policy_mgmt_mode = getSettingWithDefault("management", "profileManagedMode"); - if (agent_mode == OrchestrationMode::HYBRID || policy_mgmt_mode == "declarative") { - update_communication->authenticateAgent(); - return Maybe(); - } + bool declarative = agent_mode == OrchestrationMode::HYBRID || policy_mgmt_mode == "declarative"; bool enforce_policy_flag = false; Maybe maybe_policy = genError("Empty policy"); @@ -274,6 +271,7 @@ private: if (enforce_policy_flag) { // Trying to create the Orchestration policy from the general policy file maybe_policy = enforceOrchestrationPolicy(); + if (declarative) Singleton::Consume::from()->turnOnApplyPolicyFlag(); if (!maybe_policy.ok()) { return genError(maybe_policy.getErr()); } diff --git a/components/security_apps/orchestration/update_communication/declarative_policy_utils.cc b/components/security_apps/orchestration/update_communication/declarative_policy_utils.cc index 1d85a0d..00e8a49 100644 --- a/components/security_apps/orchestration/update_communication/declarative_policy_utils.cc +++ b/components/security_apps/orchestration/update_communication/declarative_policy_utils.cc @@ -57,6 +57,12 @@ DeclarativePolicyUtils::turnOffApplyPolicyFlag() should_apply_policy = false; } +void +DeclarativePolicyUtils::turnOnApplyPolicyFlag() +{ + should_apply_policy = true; +} + Maybe DeclarativePolicyUtils::getLocalPolicyChecksum() {