osnova-api-alert/auth/static_env.py

42 lines
1.4 KiB
Python
Raw Normal View History

2024-10-08 14:33:15 +00:00
from fastapi import Depends, HTTPException, status
from fastapi.security import APIKeyHeader
from fastapi.security import HTTPBasic, HTTPBasicCredentials
from config import conf
import logging as log
security = HTTPBasic()
api_key_header = APIKeyHeader(name="X-API-KEY", auto_error=False)
2024-10-10 10:55:50 +00:00
def verify_token_zabbix(token: str = Depends(api_key_header)):
if token != conf.zbx.token:
2024-10-08 14:33:15 +00:00
log.warning("Invalid token")
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid authentication credentials",
headers={"WWW-Authenticate": "Bearer"},
)
2024-10-11 13:40:19 +00:00
def verify_token_scom(token: str = Depends(api_key_header)):
if token != conf.scom.token:
log.warning("Invalid token")
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid authentication credentials",
headers={"WWW-Authenticate": "Bearer"},
)
2024-10-08 14:33:15 +00:00
def verify_user_pwd(credentials: HTTPBasicCredentials = Depends(security)):
if (
2024-10-08 19:32:14 +00:00
credentials.username != conf.swagger.login
or credentials.password != conf.swagger.pwd
2024-10-08 14:33:15 +00:00
):
log.warning("Invalid credentials")
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid credentials",
headers={"WWW-Authenticate": "Basic"},
)