From 0431ad9cc4cf1d5453d27e053ed54bc097017003 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 26 Sep 2025 14:34:26 -0500 Subject: [PATCH] refac: get_discovery_urls --- backend/open_webui/utils/oauth.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index 9399241853..6cf91e3f12 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -198,13 +198,25 @@ def get_parsed_and_base_url(server_url) -> tuple[urllib.parse.ParseResult, str]: def get_discovery_urls(server_url) -> list[str]: - urls = [] parsed, base_url = get_parsed_and_base_url(server_url) - urls.append( - urllib.parse.urljoin(base_url, "/.well-known/oauth-authorization-server") - ) - urls.append(urllib.parse.urljoin(base_url, "/.well-known/openid-configuration")) + urls = [ + urllib.parse.urljoin(base_url, "/.well-known/oauth-authorization-server"), + urllib.parse.urljoin(base_url, "/.well-known/openid-configuration"), + ] + + if parsed.path and parsed.path != "/": + urls.append( + urllib.parse.urljoin( + base_url, + f"/.well-known/oauth-authorization-server{parsed.path.rstrip('/')}", + ) + ) + urls.append( + urllib.parse.urljoin( + base_url, f"/.well-known/openid-configuration{parsed.path.rstrip('/')}" + ) + ) return urls