55from fastapi import FastAPI , HTTPException , Depends , Request , WebSocket
66
77from bbot_server import modules # noqa: F401
8- import bbot_server .config as bbcfg
8+ from bbot_server .config import BBOT_SERVER_CONFIG as bbcfg
99from bbot_server .errors import BBOTServerError , handle_bbot_server_error
1010
1111log = logging .getLogger ("bbot_server.api.fastapi" )
1919}
2020
2121# API key header
22- # api_key_header = APIKeyHeader(name=bbcfg.API_KEY_NAME , auto_error=False)
22+ # api_key_header = APIKeyHeader(name=bbcfg.auth_header , auto_error=False)
2323
2424
2525def api_key_dependency_http (request : Request = None ):
26+ if not bbcfg .auth_enabled :
27+ return
2628 if request is not None :
27- api_key = request .headers .get (bbcfg .API_KEY_NAME , "" )
29+ api_key = request .headers .get (bbcfg .auth_header , "" )
2830 if not api_key :
2931 raise HTTPException (status_code = 401 , detail = "API key is required" )
3032 valid , reason = bbcfg .check_api_key (api_key )
@@ -34,15 +36,15 @@ def api_key_dependency_http(request: Request = None):
3436
3537
3638async def api_key_dependency_websocket (websocket : WebSocket = None ):
39+ if not bbcfg .auth_enabled :
40+ return
3741 if websocket is not None :
38- api_key = websocket .headers .get (bbcfg .API_KEY_NAME , "" )
42+ api_key = websocket .headers .get (bbcfg .auth_header , "" )
3943 if not api_key :
4044 await websocket .close (code = 3000 , reason = "API key is required" )
41- raise HTTPException (status_code = 401 , detail = "API key is required" )
4245 valid , reason = bbcfg .check_api_key (api_key )
4346 if not valid :
4447 await websocket .close (code = 3000 , reason = reason )
45- raise HTTPException (status_code = 401 , detail = reason )
4648 return api_key
4749
4850
@@ -102,7 +104,7 @@ def custom_openapi():
102104 "APIKeyHeader" : {
103105 "type" : "apiKey" ,
104106 "in" : "header" ,
105- "name" : bbcfg .API_KEY_NAME ,
107+ "name" : bbcfg .auth_header ,
106108 "description" : "API key authentication" ,
107109 }
108110 }
0 commit comments