This commit is contained in:
Taylor Wilsdon
2026-01-28 16:39:53 -05:00
parent de461c7c7f
commit 6bb10b2596
3 changed files with 1050 additions and 1040 deletions

View File

@@ -37,7 +37,13 @@ class ExternalOAuthProvider(GoogleProvider):
- Only validates tokens, does not issue them
"""
def __init__(self, client_id: str, client_secret: str, resource_server_url: str = None, **kwargs):
def __init__(
self,
client_id: str,
client_secret: str,
resource_server_url: str = None,
**kwargs,
):
"""Initialize and store client credentials for token validation."""
self._resource_server_url = resource_server_url
super().__init__(client_id=client_id, client_secret=client_secret, **kwargs)
@@ -45,7 +51,11 @@ class ExternalOAuthProvider(GoogleProvider):
self._client_id = client_id
self._client_secret = client_secret
if self._resource_server_url:
self.resource_server_url = AnyHttpUrl(self._resource_server_url) if isinstance(self._resource_server_url, str) else self._resource_server_url
self.resource_server_url = (
AnyHttpUrl(self._resource_server_url)
if isinstance(self._resource_server_url, str)
else self._resource_server_url
)
async def verify_token(self, token: str) -> Optional[AccessToken]:
"""
@@ -131,7 +141,9 @@ class ExternalOAuthProvider(GoogleProvider):
from mcp.server.auth.routes import create_protected_resource_routes
if not self.resource_server_url:
logger.warning("ExternalOAuthProvider: resource_server_url not set, no routes created")
logger.warning(
"ExternalOAuthProvider: resource_server_url not set, no routes created"
)
return []
# Create protected resource routes that point to Google as the authorization server

View File

@@ -363,9 +363,7 @@ def configure_server_for_http():
)
server.auth = provider
logger.info(
"OAuth 2.1 enabled with EXTERNAL provider mode"
)
logger.info("OAuth 2.1 enabled with EXTERNAL provider mode")
logger.info(
"Expecting Authorization bearer tokens in tool call headers"
)

2052
uv.lock generated

File diff suppressed because it is too large Load Diff