From 0be9af4de47b9ced7c53ac97d89d5d2197c5dfd6 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 4 May 2026 10:26:51 +0800 Subject: [PATCH] fix(IotDeviceMessageUtils): skip JDK built-in types in reflection to avoid internal field access --- yudao-module-iot/yudao-module-iot-core/src/main/java/cn/iocoder/yudao/module/iot/core/util/IotDeviceMessageUtils.java | 5 +++++ 1 file changed, 5 insertions(+), 0 deletions(-) diff --git a/yudao-module-iot/yudao-module-iot-core/src/main/java/cn/iocoder/yudao/module/iot/core/util/IotDeviceMessageUtils.java b/yudao-module-iot/yudao-module-iot-core/src/main/java/cn/iocoder/yudao/module/iot/core/util/IotDeviceMessageUtils.java index c49c4a0..93a9545 100644 --- a/yudao-module-iot/yudao-module-iot-core/src/main/java/cn/iocoder/yudao/module/iot/core/util/IotDeviceMessageUtils.java +++ b/yudao-module-iot/yudao-module-iot-core/src/main/java/cn/iocoder/yudao/module/iot/core/util/IotDeviceMessageUtils.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.iot.core.util; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; @@ -83,6 +84,10 @@ public class IotDeviceMessageUtils { if (params instanceof Map) { return ((Map) params).get(fieldName); } + // 跳过 JDK 内置类型,避免反射读取到内部字段(例如 JDK8 下 String#value 会返回 char[]) + if (ClassUtil.isJdkClass(params.getClass())) { + return null; + } try { return ReflectUtil.getFieldValue(params, fieldName); } catch (Exception ignored) { -- libgit2 0.21.4