From b9edba7f696b2175cc74f111891d9051ce5e9c31 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 28 九月 2026 15:21:21 +0800
Subject: [PATCH] 拒绝把全权限账号写进厂商数据源配置
---
battery-device-neware/src/test/java/com/battery/device/neware/NewareMysqlAdapterContractTest.java | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/battery-device-neware/src/test/java/com/battery/device/neware/NewareMysqlAdapterContractTest.java b/battery-device-neware/src/test/java/com/battery/device/neware/NewareMysqlAdapterContractTest.java
index d89ff23..d3be22c 100644
--- a/battery-device-neware/src/test/java/com/battery/device/neware/NewareMysqlAdapterContractTest.java
+++ b/battery-device-neware/src/test/java/com/battery/device/neware/NewareMysqlAdapterContractTest.java
@@ -204,4 +204,20 @@
assertTrue(adapter.discoverChannels().stream()
.allMatch(item -> ADAPTER_CODE.equals(item.identity().adapterCode())));
}
+
+ /** 凭据只用现场取得的服务端只读账号;已知的全权限账号不进入配置。 */
+ @Test
+ void credentialsFallBackToTheReadOnlyAccountAndRefuseFullPrivilegeAccounts()
+ {
+ assertEquals("visitor", NewareMysqlAdapterFactory.readOnlyUser(Map.of()));
+ assertEquals("visitor", NewareMysqlAdapterFactory.readOnlyUser(Map.of("user", " ")));
+ assertEquals("another_ro", NewareMysqlAdapterFactory.readOnlyUser(Map.of("user", "another_ro")));
+ for (String account : List.of("BtsServer", "btsserver", "root", "ROOT"))
+ {
+ var failure = org.junit.jupiter.api.Assertions.assertThrows(
+ com.battery.device.api.DeviceAdapterException.class,
+ () -> NewareMysqlAdapterFactory.readOnlyUser(Map.of("user", account)));
+ assertTrue(failure.getMessage().contains(account));
+ }
+ }
}
--
Gitblit v1.7.1