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