fix(redis): validate signed ElastiCache IAM URL

This commit is contained in:
eugene-yao-zocdoc 2026-08-31 14:07:04 -04:00
parent f1cd2b03ca
commit aca81c263c

View file

@ -4,7 +4,7 @@ import asyncio
import threading
import time
from collections.abc import Callable
from typing import TYPE_CHECKING, Any, Final, Protocol, cast
from typing import TYPE_CHECKING, Any, Final, Protocol
from urllib.parse import quote
from redis.credentials import CredentialProvider
@ -185,7 +185,10 @@ class ElastiCacheIAMCredentialProvider(CredentialProvider):
self._region,
expires=self._token_lifetime_seconds,
).add_auth(request)
return self._user_name, cast(str, request.url).removeprefix("https://")
signed_url: Final = request.url
if signed_url is None:
raise RuntimeError("Unable to generate AWS ElastiCache IAM credentials")
return self._user_name, signed_url.removeprefix("https://")
def get_credentials(self) -> tuple[str, str]:
return self._get_credentials()