Use proxy base URL for CLI SSO form action (#28271)

Co-authored-by: shin-berri <shin-laptop@berri.ai>
Co-authored-by: yuneng-jiang <yuneng@berri.ai>
This commit is contained in:
boarder7395 2026-05-20 07:22:27 -04:00 committed by GitHub
parent 6a56f6d315
commit 9736b29513
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 5 deletions

View file

@ -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,

View file

@ -2218,6 +2218,7 @@ class TestCLIKeyRegenerationFlow:
# Mock request
mock_request = MagicMock(spec=Request)
mock_request.base_url = "http://internal-proxy.local/"
# Test data
session_key = "cli-session-4567890"
@ -2242,11 +2243,14 @@ class TestCLIKeyRegenerationFlow:
"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,
@ -2290,6 +2294,10 @@ class TestCLIKeyRegenerationFlow:
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):