Skip to content

Commit 31fe391

Browse files
authored
Merge pull request #252 from fisher60/fix/add-login-token-filter
add logging filter to remove log messages containing token
2 parents b249471 + 6dd29b3 commit 31fe391

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

bot/graphql.py

+11-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import asyncio
2-
import copy
32
import logging
43

54
import aiohttp
@@ -8,7 +7,17 @@
87

98
from bot import settings
109

10+
11+
class LoginTokenLoggingFilter(logging.Filter):
12+
"""Logging filter to remove api token from logging for friendo api requests."""
13+
14+
def filter(self, record: logging.LogRecord) -> bool:
15+
"""Returns False if login token is in logging record."""
16+
return "token" not in record.getMessage()
17+
18+
1119
log = logging.getLogger(__name__)
20+
log.addFilter(LoginTokenLoggingFilter())
1221

1322

1423
class GraphQLClient:
@@ -70,13 +79,6 @@ async def _post(self, **kwargs) -> dict:
7079
async with self.session.post(self.url, headers=self.headers, **kwargs) as resp:
7180
resp = await resp.json()
7281

73-
logging_response_copy = copy.deepcopy(resp)
74-
75-
# remove api token from response to prevent token from existing in logs
76-
# if data was returned and the resp is for a login, censor the token
77-
if logging_response_copy["data"] and "login" in logging_response_copy["data"]:
78-
logging_response_copy["data"]["login"]["token"] = "token_redacted_for_security"
79-
80-
log.info(logging_response_copy)
82+
log.info(resp)
8183

8284
return resp

0 commit comments

Comments
 (0)