add authentication

add built-in cleanup
general refactor
This commit is contained in:
CEF Server 2024-07-29 03:26:14 +00:00
parent 20ee543ab4
commit ba2e896813
15 changed files with 313 additions and 106 deletions

View file

@ -4,7 +4,7 @@ from . import router
from fastapi import Request, Depends
from ..auth import decodeJWT, JWTBearer
from ..util import redis, ergo
from ..util import redis, ergo, privilegedIps
def pathParts(path):
@ -35,7 +35,7 @@ async def mediamtxChannelStreams(request: Request, channel: str):
@router.post("/mediamtx/auth", include_in_schema=False)
async def mediamtxAuth(request: Request):
if request.client.host != "127.0.0.1":
if request.client.host not in privilegedIps:
return False
body = await request.json()
jwt = decodeJWT(body["query"][4:])
@ -69,7 +69,7 @@ async def mediamtxAuth(request: Request):
@router.post("/mediamtx/add", include_in_schema=False)
async def mediamtxAdd(request: Request):
if request.client.host != "127.0.0.1":
if request.client.host not in privilegedIps:
return False
body = await request.json()
path = body["env"]["MTX_PATH"].split("/")
@ -79,10 +79,9 @@ async def mediamtxAdd(request: Request):
await ergo.broadcastTo(parts[0], "STREAMSTART", parts[0], parts[1], parts[2])
@router.post("/mediamtx/del", include_in_schema=False)
async def mediamtxDelete(request: Request):
if request.client.host != "127.0.0.1":
if request.client.host not in privilegedIps:
return False
body = await request.json()
path = body["env"]["MTX_PATH"].split("/")
@ -90,6 +89,3 @@ async def mediamtxDelete(request: Request):
await redis.delete("stream " + " ".join(parts))
if len(parts) == 3:
await ergo.broadcastTo(parts[0], "STREAMEND", parts[0], parts[1], parts[2])