File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33import requests
44from dotenv import load_dotenv
55import app .schema .sqlmap as sqlmapschema
6- import app .core .sqlmap_task as sqlmap_task
6+ import app .core .sqlmap_core as sqlmap_task
77
88router = APIRouter (prefix = "/sqlmap" , tags = ["SQLMap扫描任务" ])
99
@@ -82,13 +82,24 @@ async def task_status(task_id: str):
8282
8383
8484@router .get ("/tasks/{task_id}/log" )
85- async def task_log (task_id : str ):
86- r = requests . get ( f" { SQLMAP_API } /scan/ { task_id } /log" , auth = AUTH )
85+ async def task_log (task_id : str , limit : int = 100 , offset : int = 0 ):
86+ logs = await sqlmap_task . get_task_logs ( task_id , limit , offset )
8787
88- if not r . ok :
89- raise HTTPException (404 , "无法获取日志 " )
88+ if not logs :
89+ raise HTTPException (status_code = 404 , detail = "没有找到日志 " )
9090
91- return r .json ()
91+ return {
92+ "task_id" : task_id ,
93+ "logs" : [
94+ {
95+ "level" : log .level ,
96+ "message" : log .message ,
97+ "log_time" : log .log_time ,
98+ "created_at" : log .created_at .isoformat (),
99+ }
100+ for log in logs
101+ ],
102+ }
92103
93104
94105@router .get ("/tasks/{task_id}/result" )
Original file line number Diff line number Diff line change 11from app .database .database import AsyncSessionLocal
2- from app .models .sqlmap_result import SqlmapScanPayload
2+ from app .models .sqlmap_result import SqlmapScanPayload , SqlmapScanLog , SqlmapScanResult
33from sqlalchemy import select
44
55
@@ -28,3 +28,19 @@ async def list_tasks():
2828 select (SqlmapScanPayload ).order_by (SqlmapScanPayload .created_at .desc ())
2929 )
3030 return result .scalars ().all ()
31+
32+
33+ async def get_task_logs (task_id : str , limit : int = 100 , offset : int = 0 ):
34+ """
35+ 查询指定任务的日志
36+ """
37+ async with AsyncSessionLocal () as session :
38+ result = await session .execute (
39+ select (SqlmapScanLog )
40+ .where (SqlmapScanLog .task_id == task_id )
41+ .order_by (SqlmapScanLog .created_at )
42+ .limit (limit )
43+ .offset (offset )
44+ )
45+ logs = result .scalars ().all ()
46+ return logs
You can’t perform that action at this time.
0 commit comments