From 414a3a2c91967ae0932b854db3533bf2944107cf Mon Sep 17 00:00:00 2001 From: qaq <1937228092@qq.com> Date: Wed, 27 Aug 2025 16:42:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=81=E9=87=8F=E5=80=8D?= =?UTF-8?q?=E7=8E=87=E8=83=BD=E4=B8=BA0=E7=9A=84bug,=E6=88=91=E4=B9=9F?= =?UTF-8?q?=E6=B2=A1=E6=83=B3=E5=88=B0=E6=9C=89=E4=BA=BA=E4=BC=9A=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/admin/common/dto/TunnelDto.java | 4 +- .../com/admin/common/dto/TunnelUpdateDto.java | 2 +- .../com/admin/controller/FlowController.java | 41 +++++++++++-------- .../src/main/resources/application.yml | 4 +- 4 files changed, 28 insertions(+), 23 deletions(-) diff --git a/springboot-backend/src/main/java/com/admin/common/dto/TunnelDto.java b/springboot-backend/src/main/java/com/admin/common/dto/TunnelDto.java index 8ba6ebb..69b52f6 100644 --- a/springboot-backend/src/main/java/com/admin/common/dto/TunnelDto.java +++ b/springboot-backend/src/main/java/com/admin/common/dto/TunnelDto.java @@ -28,9 +28,9 @@ public class TunnelDto { private Integer flow; // 流量倍率,默认为1.0 - @DecimalMin(value = "0.0", message = "流量倍率不能小于0.0") + @DecimalMin(value = "0.0", inclusive = false, message = "流量倍率必须大于0.0") @DecimalMax(value = "100.0", message = "流量倍率不能大于100.0") - private BigDecimal trafficRatio = new BigDecimal("1.0"); + private BigDecimal trafficRatio; private String interfaceName; diff --git a/springboot-backend/src/main/java/com/admin/common/dto/TunnelUpdateDto.java b/springboot-backend/src/main/java/com/admin/common/dto/TunnelUpdateDto.java index 10ca96f..9d746ba 100644 --- a/springboot-backend/src/main/java/com/admin/common/dto/TunnelUpdateDto.java +++ b/springboot-backend/src/main/java/com/admin/common/dto/TunnelUpdateDto.java @@ -24,7 +24,7 @@ public class TunnelUpdateDto { private Integer flow; // 流量倍率 - @DecimalMin(value = "0.0", message = "流量倍率不能小于0.0") + @DecimalMin(value = "0.0", inclusive = false, message = "流量倍率必须大于0.0") @DecimalMax(value = "100.0", message = "流量倍率不能大于100.0") private BigDecimal trafficRatio; diff --git a/springboot-backend/src/main/java/com/admin/controller/FlowController.java b/springboot-backend/src/main/java/com/admin/controller/FlowController.java index d4402b4..3e98024 100644 --- a/springboot-backend/src/main/java/com/admin/controller/FlowController.java +++ b/springboot-backend/src/main/java/com/admin/controller/FlowController.java @@ -140,7 +140,6 @@ public class FlowController extends BaseController { public String uploadFlowData(@RequestBody String rawData, String secret) { // 1. 验证节点权限 if (!isValidNode(secret)) { - log.info("节点密钥验证失败==>" + secret); return SUCCESS_RESPONSE; } @@ -150,7 +149,6 @@ public class FlowController extends BaseController { // 3. 解析为FlowDto列表 FlowDto flowDataList = JSONObject.parseObject(decryptedData, FlowDto.class); if (Objects.equals(flowDataList.getN(), "web_api")) { - System.out.println("不处理web_api==>" + flowDataList.getN()); return SUCCESS_RESPONSE; } @@ -180,17 +178,27 @@ public class FlowController extends BaseController { throw new IllegalArgumentException("数据不能为空"); } - EncryptedMessage encryptedMessage = JSON.parseObject(rawData, EncryptedMessage.class); - if (encryptedMessage.isEncrypted() && encryptedMessage.getData() != null) { - // 获取或创建加密器 - AESCrypto crypto = getOrCreateCrypto(secret); - if (crypto == null) { - log.info("⚠️ 收到加密消息但无法创建解密器,使用原始数据"); - return rawData; + try { + // 尝试解析为加密消息格式 + EncryptedMessage encryptedMessage = JSON.parseObject(rawData, EncryptedMessage.class); + + if (encryptedMessage.isEncrypted() && encryptedMessage.getData() != null) { + // 获取或创建加密器 + AESCrypto crypto = getOrCreateCrypto(secret); + if (crypto == null) { + log.info("⚠️ 收到加密消息但无法创建解密器,使用原始数据"); + return rawData; + } + + // 解密数据 + String decryptedData = crypto.decryptString(encryptedMessage.getData()); + return decryptedData; } - // 解密数据 - return crypto.decryptString(encryptedMessage.getData()); + } catch (Exception e) { + // 解析失败,可能是非加密格式,直接返回原始数据 + log.info("数据未加密或解密失败,使用原始数据: {}", e.getMessage()); } + return rawData; } @@ -229,7 +237,7 @@ public class FlowController extends BaseController { checkUserRelatedLimits(userId, name); checkUserTunnelRelatedLimits(userTunnelId, name, userId); } - log.info("流量处理完成"); + return SUCCESS_RESPONSE; } @@ -340,8 +348,7 @@ public class FlowController extends BaseController { updateWrapper.setSql("in_flow = in_flow + " + flowStats.getD()); updateWrapper.setSql("out_flow = out_flow + " + flowStats.getU()); - boolean update = forwardService.update(null, updateWrapper); - System.out.println(update); + forwardService.update(null, updateWrapper); } } @@ -354,8 +361,7 @@ public class FlowController extends BaseController { updateWrapper.setSql("in_flow = in_flow + " + flowStats.getD()); updateWrapper.setSql("out_flow = out_flow + " + flowStats.getU()); - boolean update = userService.update(null, updateWrapper); - System.out.println(update); + userService.update(null, updateWrapper); } } @@ -370,8 +376,7 @@ public class FlowController extends BaseController { updateWrapper.eq("id", userTunnelId); updateWrapper.setSql("in_flow = in_flow + " + flowStats.getD()); updateWrapper.setSql("out_flow = out_flow + " + flowStats.getU()); - boolean update = userTunnelService.update(null, updateWrapper); - System.out.println(update); + userTunnelService.update(null, updateWrapper); } } diff --git a/springboot-backend/src/main/resources/application.yml b/springboot-backend/src/main/resources/application.yml index 82edc1d..477f180 100644 --- a/springboot-backend/src/main/resources/application.yml +++ b/springboot-backend/src/main/resources/application.yml @@ -35,8 +35,8 @@ server: mybatis-plus: mapper-locations: classpath*:/mapper/**Mapper.xml - configuration: - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +# configuration: +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl jwt-secret: ${JWT_SECRET} log-dir: ${LOG_DIR}