From 2c07867cc8509db28dc1f6f3ebda9e808addacb3 Mon Sep 17 00:00:00 2001 From: Christophe Papazian Date: Thu, 13 Jun 2024 11:44:15 +0200 Subject: [PATCH] small apisec refactor --- ddtrace/appsec/_api_security/api_manager.py | 4 +--- ddtrace/appsec/_asm_request_context.py | 4 +--- ddtrace/appsec/_utils.py | 4 ---- ddtrace/settings/asm.py | 4 ++++ 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/ddtrace/appsec/_api_security/api_manager.py b/ddtrace/appsec/_api_security/api_manager.py index 48294dc7f2c..b5d935626b4 100644 --- a/ddtrace/appsec/_api_security/api_manager.py +++ b/ddtrace/appsec/_api_security/api_manager.py @@ -113,9 +113,7 @@ def _should_collect_schema(self, env, priority: int) -> bool: return True def _schema_callback(self, env): - from ddtrace.appsec._utils import _appsec_apisec_features_is_active - - if env.span is None or not _appsec_apisec_features_is_active(): + if env.span is None or not asm_config._api_security_feature_active: return root = env.span._local_root or env.span if not root or any(meta_name in root._meta for _, meta_name, _ in self.COLLECTED): diff --git a/ddtrace/appsec/_asm_request_context.py b/ddtrace/appsec/_asm_request_context.py index ae8597300c9..df4795b2c48 100644 --- a/ddtrace/appsec/_asm_request_context.py +++ b/ddtrace/appsec/_asm_request_context.py @@ -542,9 +542,7 @@ def _set_headers_and_response(response, headers, *_): if not asm_config._asm_enabled: return - from ddtrace.appsec._utils import _appsec_apisec_features_is_active - - if _appsec_apisec_features_is_active(): + if asm_config._api_security_feature_active: if headers: # start_response was not called yet, set the HTTP response headers earlier if isinstance(headers, dict): diff --git a/ddtrace/appsec/_utils.py b/ddtrace/appsec/_utils.py index ffc41735c7c..00a0961bc10 100644 --- a/ddtrace/appsec/_utils.py +++ b/ddtrace/appsec/_utils.py @@ -63,10 +63,6 @@ def access_body(bd): return req_body -def _appsec_apisec_features_is_active() -> bool: - return asm_config._asm_libddwaf_available and asm_config._asm_enabled and asm_config._api_security_enabled - - def _safe_userid(user_id): try: _ = int(user_id) diff --git a/ddtrace/settings/asm.py b/ddtrace/settings/asm.py index 001ebc22d6c..15d70734b05 100644 --- a/ddtrace/settings/asm.py +++ b/ddtrace/settings/asm.py @@ -152,6 +152,10 @@ def reset(self): """For testing puposes, reset the configuration to its default values given current environment variables.""" self.__init__() + @property + def _api_security_feature_active(self) -> bool: + return self._asm_libddwaf_available and self._asm_enabled and self._api_security_enabled + config = ASMConfig()