Skip to content

Commit de405e3

Browse files
author
Tejas Saubhage
committed
Fix missing username in uWSGI logs when using API Token authentication fixes DefectDojo#13751
1 parent 9adc251 commit de405e3

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

dojo/middleware.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,3 +338,22 @@ def _trigger_async_index_update(self, model_groups):
338338
for i, batch in enumerate(batches, 1):
339339
logger.debug(f"AsyncSearchContextMiddleware: Triggering batch {i}/{len(batches)} for {model_name}: {len(batch)} instances")
340340
update_watson_search_index_for_model(model_name, batch)
341+
342+
343+
class ApiTokenUsernameLoggingMiddleware:
344+
"""
345+
Middleware to set REMOTE_USER in uWSGI logs when using API Token authentication.
346+
When using API tokens, uWSGI logs show '-' instead of the username.
347+
This middleware sets the REMOTE_USER environ variable so uWSGI can log it correctly.
348+
"""
349+
350+
def __init__(self, get_response):
351+
self.get_response = get_response
352+
353+
def __call__(self, request):
354+
response = self.get_response(request)
355+
# After the request is processed, the user is authenticated
356+
if request.user and request.user.is_authenticated:
357+
# Set REMOTE_USER so uWSGI logs the username correctly
358+
request.META["REMOTE_USER"] = request.user.username
359+
return response

dojo/settings/settings.dist.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -992,6 +992,7 @@ def generate_url(scheme, double_slashes, user, password, host, port, path, param
992992
"django.middleware.security.SecurityMiddleware",
993993
"django_permissions_policy.PermissionsPolicyMiddleware",
994994
"django.contrib.auth.middleware.AuthenticationMiddleware",
995+
"dojo.middleware.ApiTokenUsernameLoggingMiddleware",
995996
"django.contrib.messages.middleware.MessageMiddleware",
996997
"django.middleware.clickjacking.XFrameOptionsMiddleware",
997998
"dojo.middleware.LoginRequiredMiddleware",

0 commit comments

Comments
 (0)