Skip to content

Commit c490be1

Browse files
fix: V-004 security vulnerability
Automated security fix generated by Orbis Security AI
1 parent 386429d commit c490be1

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

  • official/projects/waste_identification_ml/docker_solution/prediction_api

official/projects/waste_identification_ml/docker_solution/prediction_api/app.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@
2626

2727
import io
2828
import json
29+
import os
2930
import fastapi
31+
import fastapi.security
3032
import PIL
3133
import tensorflow as tf, tf_keras
3234
import uvicorn
@@ -37,6 +39,13 @@
3739

3840
app = fastapi.FastAPI()
3941
model_manager = app_utils.ModelManager()
42+
_api_key_header = fastapi.security.APIKeyHeader(name='X-API-Key')
43+
44+
45+
def _verify_api_key(api_key: str = fastapi.Security(_api_key_header)):
46+
expected = os.environ.get('PREDICTION_API_KEY', '')
47+
if not expected or api_key != expected:
48+
raise fastapi.HTTPException(status_code=401, detail='Invalid or missing API key')
4049

4150

4251
@app.on_event('startup')
@@ -47,6 +56,7 @@ def startup_event():
4756
@app.post('/predict')
4857
async def predict(
4958
image: fastapi.UploadFile = fastapi.File(default=None),
59+
_: None = fastapi.Depends(_verify_api_key),
5060
) -> fastapi.responses.JSONResponse:
5161
"""Predicts objects in the uploaded image.
5262

0 commit comments

Comments
 (0)