Skip to content

Commit 8df87d8

Browse files
committed
Post review tweaks
1 parent b80238f commit 8df87d8

File tree

2 files changed

+27
-39
lines changed

2 files changed

+27
-39
lines changed

src/server/_common.py

+4-36
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def log_info_with_request(message, **kwargs):
6868
remote_addr=request.remote_addr,
6969
real_remote_addr=get_real_ip_addr(request),
7070
user_agent=request.user_agent.string,
71+
req_referrer=request.referrer or request.origin,
7172
api_key=resolve_auth_token(),
7273
user_id=(current_user and current_user.id),
7374
**kwargs
@@ -115,20 +116,7 @@ def before_request_execute():
115116
api_key = resolve_auth_token()
116117

117118
# TODO: replace this next call with: log_info_with_request("Received API request")
118-
get_structured_logger("server_api").info(
119-
"Received API request",
120-
method=request.method,
121-
url=request.url,
122-
form_args=request.form,
123-
req_length=request.content_length,
124-
remote_addr=request.remote_addr,
125-
real_remote_addr=get_real_ip_addr(request),
126-
user_agent=request.user_agent.string,
127-
api_key=api_key,
128-
user_id=(user and user.id),
129-
req_referrer=request.referrer,
130-
req_origin=request.environ.get('HTTP_ORIGIN', '')
131-
)
119+
log_info_with_request("Received API request")
132120

133121
if not _is_public_route() and api_key and not user:
134122
# if this is a privleged endpoint, and an api key was given but it does not look up to a user, raise exception:
@@ -152,30 +140,10 @@ def after_request_execute(response):
152140
# Convert to milliseconds
153141
total_time *= 1000
154142

155-
api_key = resolve_auth_token()
156-
157143
update_key_last_time_used(current_user)
158144

159-
# TODO: replace this next call with: log_info_with_request_and_response("Served API request", response, elapsed_time_ms=total_time)
160-
get_structured_logger("server_api").info(
161-
"Served API request",
162-
method=request.method,
163-
url=request.url,
164-
form_args=request.form,
165-
req_length=request.content_length,
166-
remote_addr=request.remote_addr,
167-
real_remote_addr=get_real_ip_addr(request),
168-
user_agent=request.user_agent.string,
169-
api_key=api_key,
170-
values=request.values.to_dict(flat=False),
171-
blueprint=request.blueprint,
172-
endpoint=request.endpoint,
173-
response_status=response.status,
174-
content_length=response.calculate_content_length(),
175-
elapsed_time_ms=total_time,
176-
req_referrer=request.referrer,
177-
req_origin=request.environ.get('HTTP_ORIGIN', '')
178-
)
145+
log_info_with_request_and_response("Served API request", response, elapsed_time_ms=total_time)
146+
179147
return response
180148

181149

tests/server/test_validate.py

+23-3
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,29 @@ def test_require_any(self):
6363
self.assertTrue(require_any(request, "abc", empty=True))
6464

6565
def test_origin_headers(self):
66-
with self.subTest("referer and origin"):
66+
with self.subTest("referer only"):
67+
with self.assertLogs("server_api", level='INFO') as logs:
68+
self.client.get("/signal_dashboard_status", headers={
69+
"Referer": "https://test.com/test"
70+
})
71+
output = logs.output
72+
self.assertEqual(len(output), 2) # [before_request, after_request]
73+
self.assertIn("Received API request", output[0])
74+
self.assertIn("\"req_referrer\": \"https://test.com/test\"", output[0])
75+
self.assertIn("Served API request", output[1])
76+
self.assertIn("\"req_referrer\": \"https://test.com/test\"", output[1])
77+
with self.subTest("origin only"):
78+
with self.assertLogs("server_api", level='INFO') as logs:
79+
self.client.get("/signal_dashboard_status", headers={
80+
"Origin": "https://test.com"
81+
})
82+
output = logs.output
83+
self.assertEqual(len(output), 2) # [before_request, after_request]
84+
self.assertIn("Received API request", output[0])
85+
self.assertIn("\"req_referrer\": \"https://test.com\"", output[0])
86+
self.assertIn("Served API request", output[1])
87+
self.assertIn("\"req_referrer\": \"https://test.com\"", output[1])
88+
with self.subTest("referer overrides origin"):
6789
with self.assertLogs("server_api", level='INFO') as logs:
6890
self.client.get("/signal_dashboard_status", headers={
6991
"Referer": "https://test.com/test",
@@ -73,7 +95,5 @@ def test_origin_headers(self):
7395
self.assertEqual(len(output), 2) # [before_request, after_request]
7496
self.assertIn("Received API request", output[0])
7597
self.assertIn("\"req_referrer\": \"https://test.com/test\"", output[0])
76-
self.assertIn("\"req_origin\": \"https://test.com\"", output[0])
7798
self.assertIn("Served API request", output[1])
7899
self.assertIn("\"req_referrer\": \"https://test.com/test\"", output[1])
79-
self.assertIn("\"req_origin\": \"https://test.com\"", output[1])

0 commit comments

Comments
 (0)