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,
|
maintain_heartbeat,
|
||||||
release_scheduler_lock,
|
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.parser import generate_manifest
|
||||||
from utils.runtime_const import (
|
from utils.runtime_const import (
|
||||||
DELETE_ALL_META,
|
DELETE_ALL_META,
|
||||||
@@ -606,7 +606,7 @@ async def get_streams(
|
|||||||
video_id: str,
|
video_id: str,
|
||||||
response: Response,
|
response: Response,
|
||||||
request: Request,
|
request: Request,
|
||||||
secret_str: str = None,
|
secret_str: str = Depends(get_secret_str),
|
||||||
season: int = None,
|
season: int = None,
|
||||||
episode: int = None,
|
episode: int = None,
|
||||||
user_data: schemas.UserData = Depends(get_user_data),
|
user_data: schemas.UserData = Depends(get_user_data),
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ class UserDataMiddleware(BaseHTTPMiddleware):
|
|||||||
encoded_user_data = request.headers.get("encoded_user_data")
|
encoded_user_data = request.headers.get("encoded_user_data")
|
||||||
if encoded_user_data:
|
if encoded_user_data:
|
||||||
user_data = crypto_utils.decode_user_data(encoded_user_data)
|
user_data = crypto_utils.decode_user_data(encoded_user_data)
|
||||||
|
secret_str = await crypto_utils.process_user_data(user_data)
|
||||||
else:
|
else:
|
||||||
secret_str = request.path_params.get("secret_str") or request.query_params.get("secret_str")
|
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)
|
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
|
# Attach UserData to request state for access in endpoints
|
||||||
request.scope["user"] = user_data
|
request.scope["user"] = user_data
|
||||||
|
request.scope["secret_str"] = secret_str
|
||||||
|
|
||||||
return await call_next(request)
|
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:
|
def get_user_data(request: Request, secret_str: str | None = None) -> UserData:
|
||||||
return request.user
|
return request.user
|
||||||
|
|
||||||
|
def get_secret_str(request: Request) -> str:
|
||||||
|
return request.scope.get("secret_str")
|
||||||
|
|
||||||
def encode_mediaflow_proxy_url(
|
def encode_mediaflow_proxy_url(
|
||||||
mediaflow_proxy_url: str,
|
mediaflow_proxy_url: str,
|
||||||
|
|||||||
Reference in New Issue
Block a user