Skip to content

Commit 7724698

Browse files
Merge pull request #43 from FireTail-io/fix/logging-pii
fixed key for request + response
2 parents ff7cbd5 + 752b703 commit 7724698

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

firetail/auditor.py

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import logging
44
import logging.config
55
import time
6-
from functools import lru_cache
76

87
import jwt
98
import requests
@@ -91,40 +90,39 @@ def set_token(self, token_secret):
9190
self.token = token_secret
9291

9392
@staticmethod
94-
def sha1_hash(value):
95-
hash_object = hashlib.sha1(value.encode("utf-8"))
96-
return "sha1:" + hash_object.hexdigest()
93+
def sha_hash(value):
94+
hash_object = hashlib.sha256(value.encode("utf-8"))
95+
return "sha256:" + hash_object.hexdigest()
9796

9897
@staticmethod
99-
def get_ttl_hash(seconds=600):
100-
return round(time.time() / seconds)
101-
102-
@lru_cache(maxsize=128)
103-
def decode_token(token, ttl_hash=None):
98+
def decode_token(auth_token):
10499
return jwt.decode(
105-
token,
100+
auth_token.encode(),
106101
options={"verify_signature": False, "verify_exp": False},
107102
)
108103

109104
def clean_pii(self, payload):
110105
oauth = False
111106
auth_token = None
112107

113-
for k, v in payload["req"].get("headers", {}).items():
114-
if k.lower() == "authorization" and "bearer " in v.lower():
108+
if auth_header := request.headers.get("Authorization", request.headers.get("authorization")):
109+
110+
if "bearer " in auth_header.lower():
115111
oauth = True
116-
auth_token = v.split(" ")[1] if " " in v else None
112+
auth_token = auth_header.split(" ")[1] if " " in auth_header else None
113+
114+
for k, v in payload["request"].get("headers", {}).items():
117115
if k.lower() in self.scrub_headers:
118-
payload["req"]["headers"][k] = "{SANITIZED_HEADER:" + self.sha1_hash(v) + "}"
116+
payload["request"]["headers"][k] = ["{SANITIZED_HEADER:" + self.sha_hash(item) + "}" for item in v]
119117

120-
for k, v in payload["res"].get("headers", {}).items():
118+
for k, v in payload["response"].get("headers", {}).items():
121119
if k.lower() in self.scrub_headers:
122-
payload["res"]["headers"][k] = "{SANITIZED_HEADER:" + self.sha1_hash(v) + "}"
123120

121+
payload["response"]["headers"][k] = ["{SANITIZED_HEADER:" + self.sha_hash(item) + "}" for item in v]
124122
if auth_token not in [None, ""] and oauth and self.enrich_oauth:
125123
try:
126-
jwt_decoded = self.decode_token(auth_token, ttl_hash=self.get_ttl_hash())
127-
payload["oauth"] = {"sub": jwt_decoded["sub"]}
124+
jwt_decoded = self.decode_token(auth_token)
125+
payload["oauth"] = {"subject": jwt_decoded["sub"]}
128126
except jwt.exceptions.DecodeError:
129127
pass
130128
return payload

0 commit comments

Comments
 (0)