diff --git a/.deploy/deploy-dev.yaml b/.deploy/deploy-dev.yaml index 980513d..e1d43a9 100644 --- a/.deploy/deploy-dev.yaml +++ b/.deploy/deploy-dev.yaml @@ -20,4 +20,4 @@ services: networks: common-infra-nginx: - external: true \ No newline at end of file + external: true diff --git a/.gitea/workflows/deploy-dev.yaml b/.gitea/workflows/deploy-dev.yaml index fe6e8c3..547e4f0 100644 --- a/.gitea/workflows/deploy-dev.yaml +++ b/.gitea/workflows/deploy-dev.yaml @@ -41,4 +41,4 @@ jobs: env: MONGO_PASSWORD_DEV: ${{ secrets.MONGO_PASSWORD_DEV }} QUEUES_TOKEN_DEV: ${{ secrets.QUEUES_TOKEN_DEV }} - run: docker stack deploy --with-registry-auth -c ./.deploy/deploy-dev.yaml infra \ No newline at end of file + run: docker stack deploy --with-registry-auth -c ./.deploy/deploy-dev.yaml infra diff --git a/Dockerfile b/Dockerfile index 28c0755..224e023 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.10 +FROM python:3.12 RUN mkdir /usr/src/app WORKDIR /usr/src/app diff --git a/app/middlewares/__init__.py b/app/middlewares/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/app/middlewares/check_token.py b/app/middlewares/check_token.py deleted file mode 100644 index 3c017b6..0000000 --- a/app/middlewares/check_token.py +++ /dev/null @@ -1,13 +0,0 @@ -import fastapi -import os - - -QUEUES_TOKEN = os.getenv('QUEUES_TOKEN') - -class CheckToken: - async def __call__(self, request: fastapi.Request, call_next): - if QUEUES_TOKEN: - token = request.headers.get('X-Queues-Token') - if not token or token != QUEUES_TOKEN: - raise fastapi.HTTPException(403) - return await call_next(request) diff --git a/main.py b/main.py index 3e902cf..8c17be6 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,6 @@ import fastapi import uvicorn - -from app.middlewares import check_token +import os from app.routers import take from app.routers import put @@ -9,10 +8,22 @@ from app.routers import finish from app.storage import mongo +from fastapi import responses + + +QUEUES_TOKEN = os.getenv('QUEUES_TOKEN') app = fastapi.FastAPI() -app.add_middleware(check_token.CheckToken) + +@app.middleware('http') +async def check_token(request: fastapi.Request, call_next): + if QUEUES_TOKEN: + token = request.headers.get('X-Queues-Token') + if not token or token != QUEUES_TOKEN: + return responses.JSONResponse(status_code=403, content={'message': 'token is not provided or incorrect'}) + return await call_next(request) + app.include_router(take.router) app.include_router(put.router)