mirror of
https://github.com/remsky/Kokoro-FastAPI.git
synced 2025-04-13 09:39:17 +00:00
Merge b4ba360084
into f1fa340494
This commit is contained in:
commit
f8e573ce69
1 changed files with 27 additions and 5 deletions
|
@ -9,8 +9,9 @@ from pathlib import Path
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
import uvicorn
|
import uvicorn
|
||||||
from fastapi import FastAPI
|
from fastapi import Depends, FastAPI, HTTPException
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
|
from fastapi.security import HTTPBasic, HTTPBasicCredentials
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
from .core.config import settings
|
from .core.config import settings
|
||||||
|
@ -43,6 +44,27 @@ def setup_logger():
|
||||||
# Configure logger
|
# Configure logger
|
||||||
setup_logger()
|
setup_logger()
|
||||||
|
|
||||||
|
security = HTTPBasic()
|
||||||
|
|
||||||
|
def get_http_credentials(credentials: HTTPBasicCredentials = Depends(security)):
|
||||||
|
"""Conditionally verify HTTP Basic Auth credentials"""
|
||||||
|
username = os.getenv("HTTP_USERNAME")
|
||||||
|
password = os.getenv("HTTP_PASSWORD")
|
||||||
|
|
||||||
|
# Skip authentication if credentials not configured
|
||||||
|
if not username or not password:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Perform authentication check if credentials are configured
|
||||||
|
if (credentials.username != username or credentials.password != password):
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=401,
|
||||||
|
detail="Incorrect username or password",
|
||||||
|
headers={"WWW-Authenticate": "Basic"},
|
||||||
|
)
|
||||||
|
return credentials.username
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
async def lifespan(app: FastAPI):
|
async def lifespan(app: FastAPI):
|
||||||
|
@ -128,11 +150,11 @@ if settings.cors_enabled:
|
||||||
)
|
)
|
||||||
|
|
||||||
# Include routers
|
# Include routers
|
||||||
app.include_router(openai_router, prefix="/v1")
|
app.include_router(openai_router, prefix="/v1", dependencies=[Depends(get_http_credentials)])
|
||||||
app.include_router(dev_router) # Development endpoints
|
app.include_router(dev_router, dependencies=[Depends(get_http_credentials)]) # Development endpoints
|
||||||
app.include_router(debug_router) # Debug endpoints
|
app.include_router(debug_router, dependencies=[Depends(get_http_credentials)]) # Debug endpoints
|
||||||
if settings.enable_web_player:
|
if settings.enable_web_player:
|
||||||
app.include_router(web_router, prefix="/web") # Web player static files
|
app.include_router(web_router, prefix="/web", dependencies=[Depends(get_http_credentials)]) # Web player static files
|
||||||
|
|
||||||
|
|
||||||
# Health check endpoint
|
# Health check endpoint
|
||||||
|
|
Loading…
Add table
Reference in a new issue