Add ability to specify separator used in proxy headers (#18336)

This commit is contained in:
Josh Hawkins
2025-05-21 07:02:13 -05:00
committed by GitHub
parent 2a8b62acb1
commit 49c6073de6
4 changed files with 25 additions and 4 deletions

View File

@@ -202,9 +202,15 @@ async def get_current_user(request: Request):
def require_role(required_roles: List[str]):
async def role_checker(request: Request):
proxy_config: ProxyConfig = request.app.frigate_config.proxy
# Get role from header (could be comma-separated)
role_header = request.headers.get("remote-role")
roles = [r.strip() for r in role_header.split(",")] if role_header else []
roles = (
[r.strip() for r in role_header.split(proxy_config.separator)]
if role_header
else []
)
# Check if we have any roles
if not roles:
@@ -269,7 +275,8 @@ def auth(request: Request):
# if comma-separated with "admin", use "admin", else use default role
success_response.headers["remote-role"] = (
"admin"
if role and "admin" in [r.strip() for r in role.split(",")]
if role
and "admin" in [r.strip() for r in role.split(proxy_config.separator)]
else proxy_config.default_role
)