Fix: wrong ip in login logs
This commit is contained in:
@@ -133,6 +133,10 @@ def create_app() -> FastAPI:
|
|||||||
|
|
||||||
response: Response = await call_next(request)
|
response: Response = await call_next(request)
|
||||||
|
|
||||||
|
# Banned requests are already logged by BanCheckMiddleware
|
||||||
|
if getattr(request.state, "banned", False):
|
||||||
|
return response
|
||||||
|
|
||||||
client_ip = get_client_ip(request)
|
client_ip = get_client_ip(request)
|
||||||
path = request.url.path
|
path = request.url.path
|
||||||
method = request.method
|
method = request.method
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ class BanCheckMiddleware(BaseHTTPMiddleware):
|
|||||||
get_access_logger().info(
|
get_access_logger().info(
|
||||||
f"[BANNED] [{request.method}] {client_ip} - {request.url.path}"
|
f"[BANNED] [{request.method}] {client_ip} - {request.url.path}"
|
||||||
)
|
)
|
||||||
|
request.state.banned = True
|
||||||
transport = request.scope.get("transport")
|
transport = request.scope.get("transport")
|
||||||
if transport:
|
if transport:
|
||||||
transport.close()
|
transport.close()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ from fastapi import APIRouter, Request, Response, Query, Cookie
|
|||||||
from fastapi.responses import JSONResponse, PlainTextResponse
|
from fastapi.responses import JSONResponse, PlainTextResponse
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from dependencies import get_db
|
from dependencies import get_db, get_client_ip
|
||||||
from logger import get_app_logger
|
from logger import get_app_logger
|
||||||
|
|
||||||
# Server-side session token store (valid tokens for authenticated sessions)
|
# Server-side session token store (valid tokens for authenticated sessions)
|
||||||
@@ -52,7 +52,7 @@ def verify_auth(request: Request) -> bool:
|
|||||||
|
|
||||||
@router.post("/api/auth")
|
@router.post("/api/auth")
|
||||||
async def authenticate(request: Request, body: AuthRequest):
|
async def authenticate(request: Request, body: AuthRequest):
|
||||||
ip = request.client.host
|
ip = get_client_ip(request)
|
||||||
|
|
||||||
# Check if IP is currently locked out
|
# Check if IP is currently locked out
|
||||||
record = _auth_attempts.get(ip)
|
record = _auth_attempts.get(ip)
|
||||||
|
|||||||
Reference in New Issue
Block a user