@@ -14,7 +14,7 @@ def on_detected_attack(connection_manager, attack, context, blocked, stack):
1414 """
1515 if not connection_manager .token :
1616 return
17- # Modify attack so we can send it out :
17+
1818 try :
1919 attack ["user" ] = getattr (context , "user" , None )
2020 attack ["payload" ] = json .dumps (attack ["payload" ])[:4096 ]
@@ -27,14 +27,7 @@ def on_detected_attack(connection_manager, attack, context, blocked, stack):
2727 "time" : get_unixtime_ms (),
2828 "agent" : connection_manager .get_manager_info (),
2929 "attack" : attack ,
30- "request" : {
31- "method" : context .method ,
32- "url" : context .url ,
33- "ipAddress" : context .remote_address ,
34- "userAgent" : context .get_user_agent (),
35- "source" : context .source ,
36- "route" : context .route ,
37- },
30+ "request" : extract_request_if_possible (context ),
3831 }
3932 logger .debug (serialize_to_json (payload ))
4033 result = connection_manager .api .report (
@@ -46,3 +39,16 @@ def on_detected_attack(connection_manager, attack, context, blocked, stack):
4639 except Exception as e :
4740 logger .debug (e )
4841 logger .info ("Failed to report an attack" )
42+
43+
44+ def extract_request_if_possible (context ):
45+ if not context :
46+ return None
47+ return {
48+ "method" : getattr (context , "method" , None ),
49+ "url" : getattr (context , "url" , None ),
50+ "ipAddress" : getattr (context , "remote_address" , None ),
51+ "source" : getattr (context , "source" , None ),
52+ "route" : getattr (context , "route" , None ),
53+ "userAgent" : context .get_user_agent (),
54+ }
0 commit comments