mirror of
https://github.com/Viren070/MediaFusion.git
synced 2025-12-01 23:21:11 +01:00
fix: add secret_str when using encoded_user_data (#501)
* fix: add secret_str handling in middleware when using encoded_user_data * fix: fallback only * fix: get directly * fix: use request.scope * fix: await * style: format
This commit is contained in:
+2
-2
@@ -42,7 +42,7 @@ from utils.lock import (
|
||||
maintain_heartbeat,
|
||||
release_scheduler_lock,
|
||||
)
|
||||
from utils.network import get_request_namespace, get_user_public_ip, get_user_data
|
||||
from utils.network import get_request_namespace, get_user_public_ip, get_user_data, get_secret_str
|
||||
from utils.parser import generate_manifest
|
||||
from utils.runtime_const import (
|
||||
DELETE_ALL_META,
|
||||
@@ -606,7 +606,7 @@ async def get_streams(
|
||||
video_id: str,
|
||||
response: Response,
|
||||
request: Request,
|
||||
secret_str: str = None,
|
||||
secret_str: str = Depends(get_secret_str),
|
||||
season: int = None,
|
||||
episode: int = None,
|
||||
user_data: schemas.UserData = Depends(get_user_data),
|
||||
|
||||
@@ -71,6 +71,7 @@ class UserDataMiddleware(BaseHTTPMiddleware):
|
||||
encoded_user_data = request.headers.get("encoded_user_data")
|
||||
if encoded_user_data:
|
||||
user_data = crypto_utils.decode_user_data(encoded_user_data)
|
||||
secret_str = await crypto_utils.process_user_data(user_data)
|
||||
else:
|
||||
secret_str = request.path_params.get("secret_str") or request.query_params.get("secret_str")
|
||||
user_data = await crypto_utils.decrypt_user_data(secret_str)
|
||||
@@ -126,6 +127,7 @@ class UserDataMiddleware(BaseHTTPMiddleware):
|
||||
|
||||
# Attach UserData to request state for access in endpoints
|
||||
request.scope["user"] = user_data
|
||||
request.scope["secret_str"] = secret_str
|
||||
|
||||
return await call_next(request)
|
||||
|
||||
|
||||
@@ -328,6 +328,8 @@ def get_request_namespace(request: Request) -> str:
|
||||
def get_user_data(request: Request, secret_str: str | None = None) -> UserData:
|
||||
return request.user
|
||||
|
||||
def get_secret_str(request: Request) -> str:
|
||||
return request.scope.get("secret_str")
|
||||
|
||||
def encode_mediaflow_proxy_url(
|
||||
mediaflow_proxy_url: str,
|
||||
|
||||
Reference in New Issue
Block a user