Skip to content

Commit eb74e2e

Browse files
committed
update w.r.t. /private config
1 parent 15cd37b commit eb74e2e

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

appstore/core/tests.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,20 @@ def test_auth_nonloggedin_user(self):
4343
self.assertTrue(isinstance(response, HttpResponseRedirect))
4444
self.assertEqual(response.url, "/accounts/login?next=/auth/")
4545

46+
def test_auth_normalizes_remote_user_to_lowercase(self):
47+
mixed_user = User.objects.create_superuser(
48+
username="waTeim",
49+
email="wateim@example.com",
50+
password="admin2",
51+
)
52+
self.client.login(username="waTeim", password="admin2")
53+
54+
response = self.client.get("/auth/")
55+
56+
self.assertEqual(response.status_code, 200)
57+
self.assertEqual(response.headers.get("REMOTE_USER"), "wateim")
58+
mixed_user.delete()
59+
4660
@patch("core.views._get_helxinst_manager")
4761
def test_private_route_redirects_guid_to_controller_uuid(self, mock_get_helxinst_manager):
4862
mock_mgr = Mock()

appstore/core/views.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def auth_identity(request):
7474
token = UserIdentityToken.objects.get(token=raw_token)
7575
if not token.valid:
7676
return HttpResponse("The token is expired. Try restarting the app.", status=401)
77-
remote_user = token.user.get_username()
77+
remote_user = token.user.get_username().lower()
7878
response = HttpResponse(remote_user, status=200)
7979
response["REMOTE_USER"] = remote_user
8080
response["ACCESS_TOKEN"] = token.token
@@ -90,23 +90,24 @@ def auth(request):
9090
used to test authentication of a principal before proxying a request upstream."""
9191
if request.user and request.user.is_authenticated:
9292
try:
93+
remote_user = request.user.get_username().lower()
9394
response = HttpResponse(content_type="application/json", status=200)
94-
response["REMOTE_USER"] = request.user
95+
response["REMOTE_USER"] = remote_user
9596
access_token = get_access_token(request)
9697
response["ACCESS_TOKEN"] = access_token
9798
logger.debug(
9899
f"----------> remote user and corresponding access token added to the response ----- {response['REMOTE_USER']}"
99100
)
100101
except Exception as e:
101102
response = HttpResponse(content_type="application/json", status=403)
102-
response["REMOTE_USER"] = request.user
103+
response["REMOTE_USER"] = request.user.get_username().lower()
103104
logger.debug(
104105
f"----------> exception {e.__class__.__name__} \
105106
with the remote user ----- {request.user} "
106107
)
107108
else:
108109
response = HttpResponse(content_type="application/json", status=403)
109-
response["REMOTE_USER"] = request.user
110+
response["REMOTE_USER"] = str(request.user).lower()
110111
logger.debug(
111112
f"----------> user is not authenticated on the server ----- {request.user}"
112113
)

0 commit comments

Comments
 (0)