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 1
1
import json
2
2
import time
3
+ import re
3
4
from django .conf import settings
4
5
from django .urls import resolve
5
6
from django .utils import timezone
@@ -122,7 +123,7 @@ def __call__(self, request):
122
123
api = request .build_absolute_uri ()
123
124
124
125
data = dict (
125
- api = api ,
126
+ api = mask_sensitive_data ( api , mask_api_parameters = True ) ,
126
127
headers = mask_sensitive_data (headers ),
127
128
body = mask_sensitive_data (request_data ),
128
129
method = method ,
Original file line number Diff line number Diff line change @@ -47,13 +47,20 @@ def database_log_enabled():
47
47
return drf_api_logger_database
48
48
49
49
50
- def mask_sensitive_data (data ):
50
+ def mask_sensitive_data (data , mask_api_parameters = False ):
51
51
"""
52
52
Hides sensitive keys specified in sensitive_keys settings.
53
53
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.
54
58
"""
55
59
56
60
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 )
57
64
return data
58
65
59
66
for key , value in data .items ():
You can’t perform that action at this time.
0 commit comments