mirror of
https://github.com/apache/superset.git
synced 2026-05-25 09:45:18 +00:00
refactor(mcp): hoist API key auth imports to module top
The API_KEY_PASSTHROUGH_CLAIM constant in auth.py and CompositeTokenVerifier in mcp_config.py have no circular-import or optional-dependency reason to be imported inline. Moved them to module top.
This commit is contained in:
@@ -51,6 +51,8 @@ from typing import Any, Callable, TYPE_CHECKING, TypeVar
|
||||
from flask import g, has_request_context
|
||||
from flask_appbuilder.security.sqla.models import Group, User
|
||||
|
||||
from superset.mcp_service.composite_token_verifier import API_KEY_PASSTHROUGH_CLAIM
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.mcp_service.chart.chart_utils import DatasetValidationResult
|
||||
@@ -221,10 +223,6 @@ def _resolve_user_from_jwt_context(app: Any) -> User | None:
|
||||
# API key pass-through: CompositeTokenVerifier accepted this token
|
||||
# at the transport layer but defers actual validation to
|
||||
# _resolve_user_from_api_key() (priority 2 in get_user_from_request).
|
||||
from superset.mcp_service.composite_token_verifier import (
|
||||
API_KEY_PASSTHROUGH_CLAIM,
|
||||
)
|
||||
|
||||
claims = getattr(access_token, "claims", None)
|
||||
if isinstance(claims, dict) and claims.get(API_KEY_PASSTHROUGH_CLAIM):
|
||||
logger.debug("API key pass-through token detected, deferring to API key auth")
|
||||
@@ -294,10 +292,6 @@ def _resolve_user_from_api_key(app: Any) -> User | None:
|
||||
# Only validate tokens that the CompositeTokenVerifier flagged as
|
||||
# API key pass-throughs. Plain JWTs were already validated by the JWT
|
||||
# verifier and resolved in _resolve_user_from_jwt_context.
|
||||
from superset.mcp_service.composite_token_verifier import (
|
||||
API_KEY_PASSTHROUGH_CLAIM,
|
||||
)
|
||||
|
||||
claims = getattr(access_token, "claims", None)
|
||||
if not (isinstance(claims, dict) and claims.get(API_KEY_PASSTHROUGH_CLAIM)):
|
||||
return None
|
||||
|
||||
@@ -22,6 +22,7 @@ from typing import Any, Dict, Optional
|
||||
|
||||
from flask import Flask
|
||||
|
||||
from superset.mcp_service.composite_token_verifier import CompositeTokenVerifier
|
||||
from superset.mcp_service.constants import (
|
||||
DEFAULT_TOKEN_LIMIT,
|
||||
DEFAULT_WARN_THRESHOLD_PCT,
|
||||
@@ -323,10 +324,6 @@ def create_default_mcp_auth_factory(app: Flask) -> Optional[Any]:
|
||||
return None
|
||||
|
||||
if api_key_enabled:
|
||||
from superset.mcp_service.composite_token_verifier import (
|
||||
CompositeTokenVerifier,
|
||||
)
|
||||
|
||||
api_key_prefixes = app.config.get("FAB_API_KEY_PREFIXES", ["sst_"])
|
||||
logger.info("API key auth enabled for MCP")
|
||||
return CompositeTokenVerifier(
|
||||
|
||||
Reference in New Issue
Block a user