File tree Expand file tree Collapse file tree 2 files changed +29
-1
lines changed
Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change 44
55from ddtrace .contrib .internal .trace_utils import _get_request_header_client_ip
66from ddtrace .internal import core
7+ from ddtrace .internal .utils import get_blocked , set_blocked
78from ddtrace .trace import Span
89
910from datadog_lambda .trigger import (
@@ -182,3 +183,17 @@ def asm_start_response(
182183 response_headers ,
183184 ),
184185 )
186+
187+
188+ def get_asm_blocked_response (
189+ event_source : _EventSource ,
190+ ) -> Optional [Dict [str , Any ]]:
191+ """Get the blocked response for the given event source."""
192+ if event_source .event_type not in _http_event_types :
193+ return None
194+
195+ blocked = get_blocked ()
196+ if blocked :
197+ set_blocked (blocked )
198+ return blocked .get ("type" , "auto" )
199+ return None
Original file line number Diff line number Diff line change 99from importlib import import_module
1010from time import time_ns
1111
12- from datadog_lambda .asm import asm_set_context , asm_start_response , asm_start_request
12+ from datadog_lambda .asm import (
13+ asm_set_context ,
14+ asm_start_response ,
15+ asm_start_request ,
16+ get_asm_blocked_response ,
17+ )
1318from datadog_lambda .dsm import set_dsm_context
1419from datadog_lambda .extension import should_use_extension , flush_extension
1520from datadog_lambda .cold_start import (
@@ -159,8 +164,16 @@ def __init__(self, func):
159164 def __call__ (self , event , context , ** kwargs ):
160165 """Executes when the wrapped function gets called"""
161166 self ._before (event , context )
167+ if config .appsec_enabled :
168+ blocking_response = get_asm_blocked_response (self .event_source )
169+ if blocking_response :
170+ return blocking_response
162171 try :
163172 self .response = self .func (event , context , ** kwargs )
173+ if config .appsec_enabled :
174+ blocking_response = get_asm_blocked_response (self .event_source )
175+ if blocking_response :
176+ return blocking_response
164177 return self .response
165178 except Exception :
166179 from datadog_lambda .metric import submit_errors_metric
You can’t perform that action at this time.
0 commit comments