请求头和请求体改为用原始请求里面的
This commit is contained in:
2
.env
2
.env
@@ -9,7 +9,7 @@ REDIS_LOCK_MAX_RETRIES=100
|
|||||||
|
|
||||||
# 业务配置
|
# 业务配置
|
||||||
COUNT_THRESHOLD=3
|
COUNT_THRESHOLD=3
|
||||||
EXTERNAL_API_ENABLED=false
|
EXTERNAL_API_ENABLED=true
|
||||||
EXTERNAL_API_RETRY_MAX=3
|
EXTERNAL_API_RETRY_MAX=3
|
||||||
EXTERNAL_API_URL=https://127.0.0.1/api/openapi/customerApi/aiTaskResultFail
|
EXTERNAL_API_URL=https://127.0.0.1/api/openapi/customerApi/aiTaskResultFail
|
||||||
|
|
||||||
|
|||||||
@@ -36,53 +36,49 @@ async def log_callback_request(
|
|||||||
server_ip = server_host
|
server_ip = server_host
|
||||||
server_port = server_port_info
|
server_port = server_port_info
|
||||||
|
|
||||||
# 准备请求头信息(过滤敏感信息)
|
# 准备请求头信息(直接记录原始请求头)
|
||||||
request_headers = dict(request.headers)
|
request_headers = dict(request.headers)
|
||||||
safe_headers = {}
|
|
||||||
sensitive_headers = {'authorization', 'token', 'api-key', 'x-api-key', 'cookie'}
|
|
||||||
|
|
||||||
for key, value in request_headers.items():
|
# 获取原始请求体
|
||||||
if key.lower() in sensitive_headers:
|
import json as json_module
|
||||||
safe_headers[key] = "***REDACTED***"
|
try:
|
||||||
else:
|
# 获取原始请求体字节并解码为字符串
|
||||||
safe_headers[key] = value
|
body_bytes = await request.body()
|
||||||
|
body_str = body_bytes.decode('utf-8')
|
||||||
# 准备请求体信息
|
# 尝试解析为JSON对象,如果失败则使用原始字符串
|
||||||
request_body = callback_data.model_dump()
|
try:
|
||||||
|
request_body = json_module.loads(body_str)
|
||||||
|
except json_module.JSONDecodeError:
|
||||||
|
request_body = body_str
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning(f"⚠️ 读取请求体失败: {e}")
|
||||||
|
request_body = "Unable to read request body"
|
||||||
|
|
||||||
# 记录请求URL(JSON格式)
|
# 记录请求URL(JSON格式)
|
||||||
logger.info(f"🌐 请求URL: {json.dumps(str(request.url), ensure_ascii=False)}")
|
logger.info(f"🌐 请求URL: {request.url}")
|
||||||
|
|
||||||
# 记录site_id(JSON格式)
|
# 记录site_id(JSON格式)
|
||||||
logger.info(f"📝 site_id: {json.dumps(site_id, ensure_ascii=False)}")
|
logger.info(f"📝 site_id: {site_id}")
|
||||||
|
|
||||||
# 记录请求头(JSON格式)
|
# 记录server_ip(JSON格式)
|
||||||
logger.info(f"📋 请求头: {json.dumps(safe_headers, ensure_ascii=False, indent=2)}")
|
|
||||||
|
|
||||||
# 记录请求体(JSON格式)
|
|
||||||
logger.info(f"📄 请求体: {json.dumps(request_body, ensure_ascii=False, indent=2)}")
|
|
||||||
|
|
||||||
# 记录server_ip(JSON格式)
|
|
||||||
server_info = {
|
server_info = {
|
||||||
"ip": server_ip,
|
"ip": server_ip,
|
||||||
"port": server_port
|
"port": server_port
|
||||||
}
|
}
|
||||||
logger.info(f"🏠 server_ip: {json.dumps(server_info, ensure_ascii=False)}")
|
logger.info(f"🏠 server_ip: {server_info}")
|
||||||
|
|
||||||
# 记录client_ip(JSON格式)
|
# 记录client_ip(JSON格式)
|
||||||
client_info = {
|
client_info = {
|
||||||
"ip": client_ip,
|
"ip": client_ip,
|
||||||
"port": client_port
|
"port": client_port
|
||||||
}
|
}
|
||||||
logger.info(f"🖥️ client_ip: {json.dumps(client_info, ensure_ascii=False)}")
|
logger.info(f"🖥️ client_ip: {client_info}")
|
||||||
|
|
||||||
# 记录callback_data(JSON格式)
|
# 记录请求头(JSON格式)
|
||||||
callback_data_json = {
|
logger.info(f"📋 请求头: {json.dumps(request_headers, ensure_ascii=False, indent=2)}")
|
||||||
"count": callback_data.count,
|
|
||||||
"data_count": len(callback_data.data) if callback_data.data else 0,
|
# 记录请求体(JSON格式)
|
||||||
"data_sample": callback_data.data[0].model_dump() if callback_data.data else None
|
logger.info(f"📄 请求体: {json.dumps(request_body, ensure_ascii=False, indent=2)}")
|
||||||
}
|
|
||||||
logger.info(f"📦 callback_data: {json.dumps(callback_data_json, ensure_ascii=False, indent=2)}")
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 保存到数据库
|
# 保存到数据库
|
||||||
@@ -91,8 +87,8 @@ async def log_callback_request(
|
|||||||
remote_address=f"{client_ip}:{client_port}" if client_ip and client_port else client_ip,
|
remote_address=f"{client_ip}:{client_port}" if client_ip and client_port else client_ip,
|
||||||
server_ip=f"{server_ip}:{server_port}" if server_ip and server_port else server_ip,
|
server_ip=f"{server_ip}:{server_port}" if server_ip and server_port else server_ip,
|
||||||
request_url=str(request.url),
|
request_url=str(request.url),
|
||||||
request_headers=safe_headers, # 保存过滤后的请求头
|
request_headers=request_headers, # 保存原始请求头
|
||||||
request_body=request_body
|
request_body=request_body # 保存从request.body获取的原始请求体
|
||||||
)
|
)
|
||||||
|
|
||||||
db.add(callback_log)
|
db.add(callback_log)
|
||||||
|
|||||||
Reference in New Issue
Block a user