portal: fix keycloak admin user lookup

This commit is contained in:
Brad Stein 2026-01-02 17:42:03 -03:00
parent 6ae48eed9d
commit 4dd991bc30

View File

@ -94,7 +94,9 @@ class KeycloakAdminClient:
def find_user(self, username: str) -> dict[str, Any] | None: def find_user(self, username: str) -> dict[str, Any] | None:
url = f"{settings.KEYCLOAK_ADMIN_URL}/admin/realms/{settings.KEYCLOAK_REALM}/users" url = f"{settings.KEYCLOAK_ADMIN_URL}/admin/realms/{settings.KEYCLOAK_REALM}/users"
params = {"username": username, "exact": "true"} # Keycloak 26.x in our environment intermittently 400s on filtered user queries unless `max` is set.
# Use `max=1` and exact username match to keep admin calls reliable for portal provisioning.
params = {"username": username, "exact": "true", "max": "1"}
with httpx.Client(timeout=settings.HTTP_CHECK_TIMEOUT_SEC) as client: with httpx.Client(timeout=settings.HTTP_CHECK_TIMEOUT_SEC) as client:
resp = client.get(url, params=params, headers=self._headers()) resp = client.get(url, params=params, headers=self._headers())
resp.raise_for_status() resp.raise_for_status()