Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion litellm/proxy/management_endpoints/ui_sso.py
Original file line number Diff line number Diff line change
Expand Up @@ -1798,7 +1798,10 @@ async def cli_sso_callback(

from fastapi.responses import HTMLResponse

verify_url = str(request.url_for("cli_sso_complete", login_id=key))
verify_url = get_custom_url(
request_base_url=str(request.base_url),
route=f"sso/cli/complete/{key}",
)
html_content = _render_cli_sso_verification_page(
verify_url=verify_url,
browser_complete_token=browser_complete_token,
Expand Down
16 changes: 12 additions & 4 deletions tests/test_litellm/proxy/management_endpoints/test_ui_sso.py
Original file line number Diff line number Diff line change
Expand Up @@ -2218,6 +2218,7 @@ async def test_cli_sso_callback_stores_session(self):

# Mock request
mock_request = MagicMock(spec=Request)
mock_request.base_url = "http://internal-proxy.local/"

# Test data
session_key = "cli-session-4567890"
Expand All @@ -2242,11 +2243,14 @@ async def test_cli_sso_callback_stores_session(self):
"user_code_verified": False,
"session_data": None,
}
mock_request.url_for.return_value = (
"https://test.example.com/sso/cli/complete/cli-session-4567890"
)

with (
patch.dict(
os.environ,
{
"PROXY_BASE_URL": "https://test.example.com",
"SERVER_ROOT_PATH": "",
},
),
patch(
"litellm.proxy.management_endpoints.ui_sso.get_user_info_from_db",
return_value=mock_user_info,
Expand Down Expand Up @@ -2290,6 +2294,10 @@ async def test_cli_sso_callback_stores_session(self):
assert result.status_code == 200
# Verify response contains success message (response is HTML)
assert result.body is not None
assert (
'action="https://test.example.com/sso/cli/complete/cli-session-4567890"'
in result.body.decode()
)

@pytest.mark.asyncio
async def test_cli_poll_key_returns_teams_for_selection(self):
Expand Down
Loading