This commit is contained in:
2026-06-05 15:01:34 +03:00
parent 50180aaa14
commit 4cef6af041
27 changed files with 13547 additions and 892 deletions

View File

@@ -115,6 +115,20 @@ class AsyncAPIClient:
self._tokens = cached_tokens
self._authenticated = True
app_logger.info("[async_authenticate][CacheHit] Reusing cached Superset auth tokens for %s", self.base_url)
# Refresh CSRF token to set matching session cookie on this httpx client
try:
csrf_url = f"{self.api_base_url}/security/csrf_token/"
csrf_resp = await self._client.get(
csrf_url,
headers={"Authorization": f"Bearer {cached_tokens['access_token']}"},
)
if csrf_resp.is_success:
new_csrf = csrf_resp.json().get("result")
if new_csrf:
self._tokens["csrf_token"] = new_csrf
SupersetAuthCache.set(self._auth_cache_key, self._tokens)
except Exception:
pass
return self._tokens
auth_lock = self._get_auth_lock(self._auth_cache_key)
async with auth_lock:
@@ -123,6 +137,19 @@ class AsyncAPIClient:
self._tokens = cached_tokens
self._authenticated = True
app_logger.info("[async_authenticate][CacheHitAfterWait] Reusing cached Superset auth tokens for %s", self.base_url)
try:
csrf_url = f"{self.api_base_url}/security/csrf_token/"
csrf_resp = await self._client.get(
csrf_url,
headers={"Authorization": f"Bearer {cached_tokens['access_token']}"},
)
if csrf_resp.is_success:
new_csrf = csrf_resp.json().get("result")
if new_csrf:
self._tokens["csrf_token"] = new_csrf
SupersetAuthCache.set(self._auth_cache_key, self._tokens)
except Exception:
pass
return self._tokens
with belief_scope("AsyncAPIClient.authenticate"):
app_logger.info("[async_authenticate][Enter] Authenticating to %s", self.base_url)