File size: 739 Bytes
f006f31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import logging.config
from functools import lru_cache

from fastapi import HTTPException, Security, status
from fastapi.security.api_key import APIKeyHeader

from mappingservice import config

logging.config.fileConfig("logging.conf", disable_existing_loggers=False)
logger = logging.getLogger(__name__)


@lru_cache
def get_settings() -> config.Settings:
    return config.Settings()


API_KEY = get_settings().api_key.get_secret_value()
api_key_header_auth = APIKeyHeader(name="Api-key", auto_error=True)
mc = {}


def get_api_key(api_key_header: str = Security(api_key_header_auth)):
    if api_key_header != API_KEY:
        raise HTTPException(
            status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid API Key"
        )