Skip to content

Commit 998a1d9

Browse files
authored
BB2-3345: Added DATA-END-USER header logging and test. (#1244)
* Added DATA-END-USER header logging and test. * Changed header name
1 parent 5a79028 commit 998a1d9

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed

apps/logging/request_logger.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,15 @@ def extract_request_data(self, request):
132132
self.standard_log_data["auth_pkce_method"] = request.session["auth_pkce_method"]
133133
except Exception:
134134
self.standard_log_data["auth_pkce_method"] = None
135-
136135
try:
137136
self.standard_log_data["auth_language"] = request.session["auth_language"]
138137
except Exception:
139138
pass
139+
try:
140+
request_headers = getattr(request, "headers")
141+
self.standard_log_data["data_facilitator_end_user"] = request_headers["data_facilitator_end_user"]
142+
except Exception:
143+
pass
140144

141145
self.standard_log_data.update(get_session_auth_flow_trace(request))
142146

apps/logging/tests/test_audit_loggers.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,46 @@ def _request_logger_app_not_exist(self, v2=False):
532532
self.assertEqual(json_rec.get("req_app_name"), "")
533533
self.assertEqual(json_rec.get("req_app_id"), "")
534534

535+
def test_request_logger_data_facilitator_end_user(self):
536+
self._request_logger_data_facilitator_end_user(False)
537+
538+
def test_request_logger_data_facilitator_end_user_v2(self):
539+
self._request_logger_data_facilitator_end_user(True)
540+
541+
def _request_logger_data_facilitator_end_user(self, v2=False):
542+
redirect_uri = "http://localhost"
543+
self._create_user("anna", "123456")
544+
capability_a = self._create_capability("Capability A", [])
545+
capability_b = self._create_capability("Capability B", [])
546+
application = self._create_application(
547+
"an app",
548+
grant_type=Application.GRANT_AUTHORIZATION_CODE,
549+
redirect_uris=redirect_uri,
550+
)
551+
552+
application.scope.add(capability_a, capability_b)
553+
api_ver = "v1" if not v2 else "v2"
554+
555+
request = HttpRequest()
556+
self.client.login(request=request, username="anna", password="123456")
557+
558+
payload = {
559+
"client_id": application.id,
560+
"response_type": "code",
561+
"redirect_uri": redirect_uri,
562+
}
563+
564+
headers = {"DATA-END-USER": "End User App"}
565+
566+
response = self.client.get("/{}/o/authorize/".format(api_ver), data=payload, headers=headers)
567+
568+
self.assertNotEqual(response.status_code, 500)
569+
# assert request logger record exist and app name, app id has expected value ""
570+
request_log_content = get_log_content(self.logger_registry, logging.AUDIT_HHS_AUTH_SERVER_REQ_LOGGER)
571+
self.assertIsNotNone(request_log_content)
572+
json_rec = json.loads(request_log_content)
573+
self.assertEqual(json_rec.get("data_facilitator_end_user"), "End User App")
574+
535575
def test_auth_flow_lang_logger(self, v2=False):
536576
# copy and adapted to test auth flow logger
537577
redirect_uri = "http://localhost"

hhs_oauth_server/request_logging.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ class RequestResponseLog(object):
114114
- user_id = Login user (or None) or OAuth2 API id. (BB2-342)
115115
- user = Login user (or None) or OAuth2 API username.
116116
- user_username = Login user (or None) or OAuth2 API username. (BB2-342)
117+
- data_facilitator_end_user = End user for data facilitator app. (BB2-3345)
117118
"""
118119

119120
request = None
@@ -245,6 +246,9 @@ def to_dict(self):
245246
self._log_msg_update_from_dict(
246247
request_headers, "req_header_bluebutton_app_version", "X-BLUEBUTTON-APP-VERSION"
247248
)
249+
self._log_msg_update_from_dict(
250+
request_headers, "data_facilitator_end_user", "DATA-END-USER"
251+
)
248252

249253
"""
250254
--- Logging items from request.body ---

0 commit comments

Comments
 (0)