Kaynağa Gözat

refac: get_discovery_urls

Timothy Jaeryang Baek 1 hafta önce
ebeveyn
işleme
0431ad9cc4
1 değiştirilmiş dosya ile 17 ekleme ve 5 silme
  1. 17 5
      backend/open_webui/utils/oauth.py

+ 17 - 5
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