Bypass mount redirect for /admin with relative redirect
This commit is contained in:
@@ -15,6 +15,8 @@ from typing import AsyncGenerator
|
|||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
|
from starlette.responses import RedirectResponse
|
||||||
|
from starlette.status import HTTP_303_SEE_OTHER
|
||||||
|
|
||||||
from app.core.config import get_settings
|
from app.core.config import get_settings
|
||||||
from app.database import close_db, init_db
|
from app.database import close_db, init_db
|
||||||
@@ -177,6 +179,12 @@ app.include_router(
|
|||||||
if settings.ENABLE_ADMIN:
|
if settings.ENABLE_ADMIN:
|
||||||
from app.admin import admin as admin_app
|
from app.admin import admin as admin_app
|
||||||
|
|
||||||
|
@app.get("/admin", include_in_schema=False)
|
||||||
|
async def admin_entrypoint():
|
||||||
|
# Avoid Starlette mount slash-normalization redirect, which can emit an
|
||||||
|
# absolute URL based on proxy headers such as https://127.0.0.1/admin/.
|
||||||
|
return RedirectResponse(url="/admin/", status_code=HTTP_303_SEE_OTHER)
|
||||||
|
|
||||||
app.include_router(
|
app.include_router(
|
||||||
ai_router,
|
ai_router,
|
||||||
prefix=f"{settings.API_V1_STR}",
|
prefix=f"{settings.API_V1_STR}",
|
||||||
|
|||||||
Reference in New Issue
Block a user