From caf4fdcfa0a079f7e7d2d5ab597cc00a12de777d Mon Sep 17 00:00:00 2001 From: saidsurucu Date: Tue, 1 Jul 2025 17:55:56 +0300 Subject: [PATCH] Update oauth_middleware.py --- oauth_middleware.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/oauth_middleware.py b/oauth_middleware.py index a5580ab..bfdaa28 100644 --- a/oauth_middleware.py +++ b/oauth_middleware.py @@ -24,12 +24,17 @@ class ClerkOAuthMiddleware(Middleware): def __init__(self): """Initialize the middleware with Clerk client.""" - self.clerk_secret = os.getenv("CLERK_SECRET_KEY") - if not self.clerk_secret: - raise ValueError("CLERK_SECRET_KEY environment variable is required") - - self.clerk = Clerk(bearer_auth=self.clerk_secret) self.enable_auth = os.getenv("ENABLE_AUTH", "false").lower() == "true" + self.clerk_secret = os.getenv("CLERK_SECRET_KEY") + + # Only require Clerk credentials if auth is enabled + if self.enable_auth and not self.clerk_secret: + raise ValueError("CLERK_SECRET_KEY environment variable is required when ENABLE_AUTH=true") + + # Initialize Clerk client only if auth is enabled + self.clerk = None + if self.enable_auth and self.clerk_secret: + self.clerk = Clerk(bearer_auth=self.clerk_secret) async def on_request(self, context: MiddlewareContext, call_next): """ @@ -65,6 +70,12 @@ class ClerkOAuthMiddleware(Middleware): )) # Validate token and get user info using Clerk SDK + if not self.clerk: + raise McpError(ErrorData( + code=-32001, + message="Authentication service not available" + )) + user_info = self._validate_oauth_token(request) if not user_info: raise McpError(ErrorData(