File tree Expand file tree Collapse file tree 2 files changed +10
-2
lines changed
Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Original file line number Diff line number Diff line change 11import json
22import time
3+ import re
34from django .conf import settings
45from django .urls import resolve
56from django .utils import timezone
@@ -122,7 +123,7 @@ def __call__(self, request):
122123 api = request .build_absolute_uri ()
123124
124125 data = dict (
125- api = api ,
126+ api = mask_sensitive_data ( api , mask_api_parameters = True ) ,
126127 headers = mask_sensitive_data (headers ),
127128 body = mask_sensitive_data (request_data ),
128129 method = method ,
Original file line number Diff line number Diff line change @@ -47,13 +47,20 @@ def database_log_enabled():
4747 return drf_api_logger_database
4848
4949
50- def mask_sensitive_data (data ):
50+ def mask_sensitive_data (data , mask_api_parameters = False ):
5151 """
5252 Hides sensitive keys specified in sensitive_keys settings.
5353 Loops recursively over nested dictionaries.
54+
55+ When the mask_api_parameters parameter is set, the function will
56+ instead iterate over sensitive_keys and remove them from an api
57+ URL string.
5458 """
5559
5660 if type (data ) != dict :
61+ if mask_api_parameters and type (data ) == str :
62+ for sensitive_key in SENSITIVE_KEYS :
63+ data = re .sub ('({}=)(.*?)($|&)' .format (sensitive_key ), '\g<1>***FILTERED***\g<3>' .format (sensitive_key .upper ()), data )
5764 return data
5865
5966 for key , value in data .items ():
You can’t perform that action at this time.
0 commit comments