From fae07e914043cbd96d3a36bbbb1a650f87607917 Mon Sep 17 00:00:00 2001 From: Oleksandra Matviienko Date: Fri, 24 Apr 2026 15:00:26 +0200 Subject: [PATCH] Replaced deprecated string, number, and random-value helpers with modern equivalents --- .../DefaultSystemDataLoaderService.java | 2 +- .../mfa/provider/impl/TotpTwoFaProvider.java | 2 +- .../service/ws/WebSocketSessionType.java | 4 ++-- .../server/controller/AbstractWebTest.java | 2 +- .../controller/AdminControllerTest.java | 2 +- .../AlarmCommentControllerTest.java | 6 ++--- .../server/controller/AuthControllerTest.java | 8 +++---- .../controller/BaseQueueControllerTest.java | 2 +- .../controller/EntityQueryControllerTest.java | 4 ++-- .../server/controller/UserControllerTest.java | 4 ++-- .../server/controller/WebsocketApiTest.java | 4 ++-- .../discovery/HashPartitionServiceTest.java | 2 +- .../service/entitiy/EntityServiceTest.java | 6 ++--- .../housekeeper/HousekeeperServiceTest.java | 4 ++-- .../AbstractNotificationApiTest.java | 2 +- .../notification/NotificationApiWsClient.java | 2 +- .../NotificationTargetApiTest.java | 2 +- .../TbRuleEngineQueueConsumerManagerTest.java | 14 +++++------ .../service/sms/DefaultSmsServiceTest.java | 10 ++++---- ...DefaultTbLocalSubscriptionServiceTest.java | 6 ++--- .../subscription/TbEntityDataSubCtxTest.java | 10 ++++---- .../server/common/data/EntityType.java | 2 ++ .../common/data/util/TemplateUtils.java | 2 +- .../server/common/data/util/TypeCastUtil.java | 2 +- .../server/service/sync/vc/GitRepository.java | 5 ++-- .../server/dao/resource/BaseImageService.java | 2 +- .../dao/resource/BaseResourceService.java | 8 ++++--- .../dao/service/AdminSettingsServiceTest.java | 6 ++--- .../dao/service/AlarmCommentServiceTest.java | 8 +++---- .../server/dao/service/AssetServiceTest.java | 4 ++-- .../dao/sql/alarm/JpaAlarmCommentDaoTest.java | 4 ++-- .../dao/sql/user/JpaUserSettingsDaoTest.java | 4 ++-- .../dao/sqlts/SqlTimeseriesLatestDaoTest.java | 2 +- .../monitoring/client/WsClient.java | 2 +- .../service/MonitoringEntityService.java | 2 +- .../connectivity/MqttGatewayClientTest.java | 4 ++-- .../lwm2m/AbstractLwm2mClientTest.java | 6 ++--- .../lwm2m/rpc/Lwm2mObserveCompositeTest.java | 6 ++--- .../lwm2m/rpc/Lwm2mObserveTest.java | 6 ++--- .../lwm2m/security/Lwm2mClientNoSecTest.java | 4 ++-- .../lwm2m/security/Lwm2mClientPskTest.java | 4 ++-- .../msa/edqs/EdqsEntityDataQueryTest.java | 6 ++--- .../msa/prototypes/DevicePrototypes.java | 6 ++--- .../msa/ui/pages/CreateWidgetPopupHelper.java | 4 ++-- .../server/msa/ui/utils/EntityPrototypes.java | 24 +++++++++---------- .../client/tools/migrator/PgCaMigrator.java | 2 +- 46 files changed, 114 insertions(+), 109 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 965d7105a9..e88b390ca7 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -335,7 +335,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { private String generateRandomKey() { return Base64.getEncoder().encodeToString( - RandomStringUtils.randomAlphanumeric(64).getBytes(StandardCharsets.UTF_8)); + RandomStringUtils.secure().nextAlphanumeric(64).getBytes(StandardCharsets.UTF_8)); } @Override diff --git a/application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/TotpTwoFaProvider.java b/application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/TotpTwoFaProvider.java index 23eda67a77..a7fbdb84e4 100644 --- a/application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/TotpTwoFaProvider.java +++ b/application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/TotpTwoFaProvider.java @@ -62,7 +62,7 @@ public class TotpTwoFaProvider implements TwoFaProvider forName(String name) { return Arrays.stream(values()) - .filter(sessionType -> StringUtils.equals(sessionType.name, name)) + .filter(sessionType -> Objects.equals(sessionType.name, name)) .findFirst(); } diff --git a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java index 055e1e19a0..7803b0c746 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java @@ -1358,7 +1358,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { protected NotificationTarget createNotificationTarget(UsersFilter usersFilter) { NotificationTarget notificationTarget = new NotificationTarget(); - notificationTarget.setName(usersFilter.toString() + RandomStringUtils.randomNumeric(5)); + notificationTarget.setName(usersFilter.toString() + RandomStringUtils.secure().nextNumeric(5)); PlatformUsersNotificationTargetConfig targetConfig = new PlatformUsersNotificationTargetConfig(); targetConfig.setUsersFilter(usersFilter); notificationTarget.setConfiguration(targetConfig); diff --git a/application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java index 21a8b3b2e9..ee09b9a98c 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java @@ -168,7 +168,7 @@ public class AdminControllerTest extends AbstractControllerTest { assertThat(jwtSettings).isEqualTo(defaultJwtSettings); jwtSettings.setTokenSigningKey(Base64.getEncoder().encodeToString( - RandomStringUtils.randomAlphanumeric(512 / Byte.SIZE).getBytes(StandardCharsets.UTF_8))); + RandomStringUtils.secure().nextAlphanumeric(512 / Byte.SIZE).getBytes(StandardCharsets.UTF_8))); doPost("/api/admin/jwtSettings", jwtSettings).andExpect(status().isOk()); diff --git a/application/src/test/java/org/thingsboard/server/controller/AlarmCommentControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/AlarmCommentControllerTest.java index 3bb5fd5647..89eb140c8b 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AlarmCommentControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AlarmCommentControllerTest.java @@ -28,7 +28,7 @@ import org.mockito.Mockito; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.test.context.ContextConfiguration; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.alarm.Alarm; @@ -292,7 +292,7 @@ public class AlarmCommentControllerTest extends AbstractControllerTest { final int size = 10; for (int i = 0; i < size; i++) { createdAlarmComments.add( - createAlarmComment(alarm.getId(), RandomStringUtils.randomAlphanumeric(10)) + createAlarmComment(alarm.getId(), RandomStringUtils.secure().nextAlphanumeric(10)) ); } @@ -323,7 +323,7 @@ public class AlarmCommentControllerTest extends AbstractControllerTest { List createdAlarmComments = new LinkedList<>(); for (int i = 0; i < size; i++) { createdAlarmComments.add( - createAlarmComment(alarm.getId(), RandomStringUtils.randomAlphanumeric(10)) + createAlarmComment(alarm.getId(), RandomStringUtils.secure().nextAlphanumeric(10)) ); } diff --git a/application/src/test/java/org/thingsboard/server/controller/AuthControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/AuthControllerTest.java index 419f442f87..a35e1f9af0 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AuthControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AuthControllerTest.java @@ -22,7 +22,7 @@ import org.junit.Test; import org.mockito.Mockito; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.http.HttpHeaders; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.User; @@ -149,7 +149,7 @@ public class AuthControllerTest extends AbstractControllerTest { loginTenantAdmin(); ChangePasswordRequest changePasswordRequest = new ChangePasswordRequest(); changePasswordRequest.setCurrentPassword("tenant"); - changePasswordRequest.setNewPassword(RandomStringUtils.randomAlphanumeric(73)); + changePasswordRequest.setNewPassword(RandomStringUtils.secure().nextAlphanumeric(73)); doPost("/api/auth/changePassword", changePasswordRequest) .andExpect(status().isBadRequest()) .andExpect(jsonPath("$.message", is("Password must be no more than 72 characters in length."))); @@ -161,7 +161,7 @@ public class AuthControllerTest extends AbstractControllerTest { ChangePasswordRequest changePasswordRequest = new ChangePasswordRequest(); changePasswordRequest.setCurrentPassword("tenant"); - String newPassword = RandomStringUtils.randomAlphanumeric(16); + String newPassword = RandomStringUtils.secure().nextAlphanumeric(16); changePasswordRequest.setNewPassword(newPassword); doPost("/api/auth/changePassword", changePasswordRequest) .andExpect(status().isOk()); @@ -194,7 +194,7 @@ public class AuthControllerTest extends AbstractControllerTest { .andExpect(status().isSeeOther()) .andExpect(header().string(HttpHeaders.LOCATION, "/login/resetPassword?resetToken=" + this.currentResetPasswordToken)); - String newPassword = RandomStringUtils.randomAlphanumeric(73); + String newPassword = RandomStringUtils.secure().nextAlphanumeric(73); JsonNode resetPasswordRequest = JacksonUtil.newObjectNode() .put("resetToken", this.currentResetPasswordToken) .put("password", newPassword); diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseQueueControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseQueueControllerTest.java index 0d79882a94..b7507f5dec 100644 --- a/application/src/test/java/org/thingsboard/server/controller/BaseQueueControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/BaseQueueControllerTest.java @@ -236,7 +236,7 @@ public class BaseQueueControllerTest extends AbstractControllerTest { when(testProcessingResult.getFailedMap()).thenReturn(new ConcurrentHashMap<>()); when(testProcessingResult.getPendingMap()).thenReturn(new ConcurrentHashMap<>()); - String largeExceptionMessage = RandomStringUtils.randomAlphabetic(150); + String largeExceptionMessage = RandomStringUtils.secure().nextAlphabetic(150); RuleEngineException ruleEngineException = new RuleEngineException(largeExceptionMessage); when(testProcessingResult.getExceptionsMap()).thenReturn(new ConcurrentHashMap<>(Map.of( tenantId, ruleEngineException diff --git a/application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java index 835f00985b..f99fe4be6f 100644 --- a/application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java @@ -30,7 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.web.servlet.ResultActions; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.AttributeScope; import org.thingsboard.server.common.data.Customer; @@ -201,7 +201,7 @@ public class EntityQueryControllerTest extends AbstractControllerTest { loginTenantAdmin(); List devices = new ArrayList<>(); - String devicePrefix = "Device" + RandomStringUtils.randomAlphabetic(5); + String devicePrefix = "Device" + RandomStringUtils.secure().nextAlphabetic(5); for (int i = 0; i < 97; i++) { Device device = new Device(); device.setName(devicePrefix + i); diff --git a/application/src/test/java/org/thingsboard/server/controller/UserControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/UserControllerTest.java index 957b3721e0..751631aec2 100644 --- a/application/src/test/java/org/thingsboard/server/controller/UserControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/UserControllerTest.java @@ -1296,9 +1296,9 @@ public class UserControllerTest extends AbstractControllerTest { Assert.assertEquals(savedDashboard2.getTitle(), starred.getTitle()); //TEST renaming in the cache. - savedDashboard1.setTitle(RandomStringUtils.randomAlphanumeric(10)); + savedDashboard1.setTitle(RandomStringUtils.secure().nextAlphanumeric(10)); savedDashboard1 = doPost("/api/dashboard", savedDashboard1, Dashboard.class); - savedDashboard2.setTitle(RandomStringUtils.randomAlphanumeric(10)); + savedDashboard2.setTitle(RandomStringUtils.secure().nextAlphanumeric(10)); savedDashboard2 = doPost("/api/dashboard", savedDashboard2, Dashboard.class); newSettings = doGet("/api/user/dashboards/" + savedDashboard1.getId().getId() + "/unstar", UserDashboardsInfo.class); diff --git a/application/src/test/java/org/thingsboard/server/controller/WebsocketApiTest.java b/application/src/test/java/org/thingsboard/server/controller/WebsocketApiTest.java index e3b6a6efd8..ea34f428f3 100644 --- a/application/src/test/java/org/thingsboard/server/controller/WebsocketApiTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/WebsocketApiTest.java @@ -30,7 +30,7 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.TestPropertySource; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.rule.engine.api.AttributesSaveRequest; import org.thingsboard.rule.engine.api.TimeseriesSaveRequest; @@ -556,7 +556,7 @@ public class WebsocketApiTest extends AbstractControllerTest { for (int i = 0; i < 6; i++) { Alarm alarm = new Alarm(); alarm.setOriginator(device.getId()); - alarm.setType(RandomStringUtils.randomAlphabetic(10)); + alarm.setType(RandomStringUtils.secure().nextAlphabetic(10)); alarm.setSeverity(AlarmSeverity.CRITICAL); alarm = doPost("/api/alarm", alarm, Alarm.class); alarms.add(alarm); diff --git a/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java b/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java index c361172b66..b1d59c031a 100644 --- a/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java @@ -380,7 +380,7 @@ public class HashPartitionServiceTest { } Stream.concat(Stream.of(TenantId.SYS_TENANT_ID), Stream.generate(UUID::randomUUID).map(TenantId::new).limit(10)).forEach(tenantId -> { - List queues = Stream.generate(() -> RandomStringUtils.randomAlphabetic(10)) + List queues = Stream.generate(() -> RandomStringUtils.secure().nextAlphabetic(10)) .map(queueName -> new QueueKey(ServiceType.TB_RULE_ENGINE, queueName, tenantId)) .limit(100).toList(); diff --git a/application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java b/application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java index b3230b3d45..251f42bb3f 100644 --- a/application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java @@ -1004,7 +1004,7 @@ public class EntityServiceTest extends AbstractControllerTest { public void testFindEntityDataByQuery_filter_entity_name_ends_with() { List devices = new ArrayList<>(); - String suffixes = RandomStringUtils.randomAlphanumeric(5); + String suffixes = RandomStringUtils.secure().nextAlphanumeric(5); for (int i = 0; i < 10; i++) { Device device = new Device(); device.setTenantId(tenantId); @@ -1425,7 +1425,7 @@ public class EntityServiceTest extends AbstractControllerTest { Device device = new Device(); device.setTenantId(tenantId); device.setCustomerId(customerId); - device.setName("Device test " + RandomStringUtils.randomAlphabetic(5)); + device.setName("Device test " + RandomStringUtils.secure().nextAlphabetic(5)); device.setType("default"); return device; } @@ -1485,7 +1485,7 @@ public class EntityServiceTest extends AbstractControllerTest { device.setTenantId(tenantId); device.setName("Device " + i); device.setType("default"); - device.setLabel("label-" + RandomUtils.nextInt(100, 10000)); + device.setLabel("label-" + RandomUtils.secure().randomInt(100, 10000)); return device; }) .limit(count) diff --git a/application/src/test/java/org/thingsboard/server/service/housekeeper/HousekeeperServiceTest.java b/application/src/test/java/org/thingsboard/server/service/housekeeper/HousekeeperServiceTest.java index 0c12767b60..762f3946d4 100644 --- a/application/src/test/java/org/thingsboard/server/service/housekeeper/HousekeeperServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/housekeeper/HousekeeperServiceTest.java @@ -25,7 +25,7 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.rule.engine.metadata.TbGetAttributesNode; import org.thingsboard.rule.engine.metadata.TbGetAttributesNodeConfiguration; @@ -570,7 +570,7 @@ public class HousekeeperServiceTest extends AbstractControllerTest { .tenantId(tenantId) .originator(entityId) .severity(AlarmSeverity.CRITICAL) - .type("test alarm for " + entityId + " " + RandomStringUtils.randomAlphabetic(10)) + .type("test alarm for " + entityId + " " + RandomStringUtils.secure().nextAlphabetic(10)) .build(), Alarm.class); assertThat(alarmService.findAlarmIdsByOriginatorId(tenantId, entityId, 0, null, 10)).isNotEmpty(); } diff --git a/application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java b/application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java index cf99669777..c7d5f0ea82 100644 --- a/application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java +++ b/application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java @@ -155,7 +155,7 @@ public abstract class AbstractNotificationApiTest extends AbstractControllerTest User user = new User(); user.setTenantId(tenantId); user.setAuthority(authority); - user.setEmail(RandomStringUtils.randomAlphabetic(20) + "@thingsboard.com"); + user.setEmail(RandomStringUtils.secure().nextAlphabetic(20) + "@thingsboard.com"); user = createUserAndLogin(user, "12345678"); NotificationApiWsClient wsClient = buildAndConnectWebSocketClient(); return Pair.of(user, wsClient); diff --git a/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiWsClient.java b/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiWsClient.java index b538972dd7..f6d94f5170 100644 --- a/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiWsClient.java +++ b/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiWsClient.java @@ -131,7 +131,7 @@ public class NotificationApiWsClient extends TbTestWebSocketClient { } private int newCmdId() { - return RandomUtils.nextInt(1, 1000); + return RandomUtils.secure().randomInt(1, 1000); } } diff --git a/application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java b/application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java index 2d865542a1..b68d30a4c6 100644 --- a/application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java +++ b/application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java @@ -187,7 +187,7 @@ public class NotificationTargetApiTest extends AbstractNotificationApiTest { NotificationTarget sysAdmins = createNotificationTarget(new SystemAdministratorsFilter()); NotificationTarget slack = new NotificationTarget(); - slack.setName(RandomStringUtils.randomNumeric(5)); + slack.setName(RandomStringUtils.secure().nextNumeric(5)); SlackNotificationTargetConfig slackConfig = new SlackNotificationTargetConfig(); SlackConversation slackConversation = new SlackConversation(); slackConversation.setType(SlackConversationType.DIRECT); diff --git a/application/src/test/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManagerTest.java b/application/src/test/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManagerTest.java index 228b987cf0..90816b6675 100644 --- a/application/src/test/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManagerTest.java +++ b/application/src/test/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManagerTest.java @@ -27,7 +27,7 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomUtils; +import org.apache.commons.lang3.RandomUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.ThingsBoardExecutors; import org.thingsboard.common.util.ThingsBoardThreadFactory; @@ -542,18 +542,18 @@ public class TbRuleEngineQueueConsumerManagerTest { Queue oldConfig = consumerManager.getConfig(); Queue newConfig = JacksonUtil.clone(oldConfig); newConfig.setConsumerPerPartition(RandomUtils.nextBoolean()); - newConfig.setPollInterval(RandomUtils.nextInt(100, 501)); - newConfig.setPartitions(RandomUtils.nextInt(1, 10)); + newConfig.setPollInterval(RandomUtils.secure().randomInt(100, 501)); + newConfig.setPartitions(RandomUtils.secure().randomInt(1, 10)); newConfig.setPackProcessingTimeout(RandomUtils.nextLong(100, 5001)); - newConfig.getSubmitStrategy().setType(SubmitStrategyType.values()[RandomUtils.nextInt(0, SubmitStrategyType.values().length)]); - newConfig.getProcessingStrategy().setType(ProcessingStrategyType.values()[RandomUtils.nextInt(0, ProcessingStrategyType.values().length)]); + newConfig.getSubmitStrategy().setType(SubmitStrategyType.values()[RandomUtils.secure().randomInt(0, SubmitStrategyType.values().length)]); + newConfig.getProcessingStrategy().setType(ProcessingStrategyType.values()[RandomUtils.secure().randomInt(0, ProcessingStrategyType.values().length)]); log.info("Generated new config: consumerPerPartition={}, pollInterval={}, processingStrategy={}", newConfig.isConsumerPerPartition(), newConfig.getPollInterval(), newConfig.getProcessingStrategy().getType()); return newConfig; }; Supplier> partitionsUpdater = () -> { - int partitionsCount = RandomUtils.nextInt(0, 20); - int[] partitions = IntStream.generate(() -> RandomUtils.nextInt(0, 20)) + int partitionsCount = RandomUtils.secure().randomInt(0, 20); + int[] partitions = IntStream.generate(() -> RandomUtils.secure().randomInt(0, 20)) .distinct().limit(partitionsCount) .sorted().toArray(); log.info("Generated new partitions: {}", Arrays.toString(partitions)); diff --git a/application/src/test/java/org/thingsboard/server/service/sms/DefaultSmsServiceTest.java b/application/src/test/java/org/thingsboard/server/service/sms/DefaultSmsServiceTest.java index 8d27b07550..75a3423b98 100644 --- a/application/src/test/java/org/thingsboard/server/service/sms/DefaultSmsServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/sms/DefaultSmsServiceTest.java @@ -24,7 +24,7 @@ import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.TestPropertySource; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.common.data.TenantProfile; @@ -84,13 +84,13 @@ public class DefaultSmsServiceTest extends AbstractControllerTest { for (int i = 0; i < 10; i++) { doReturn(1).when(defaultSmsService).sendSms(any(), any()); - defaultSmsService.sendSms(tenantId, null, new String[]{RandomStringUtils.randomNumeric(10)}, "Message"); + defaultSmsService.sendSms(tenantId, null, new String[]{RandomStringUtils.secure().nextNumeric(10)}, "Message"); } //wait 1 sec so that api usage state is updated TimeUnit.SECONDS.sleep(1); assertThrows(RuntimeException.class, () -> { - defaultSmsService.sendSms(tenantId, null, new String[]{RandomStringUtils.randomNumeric(10)}, "Message"); + defaultSmsService.sendSms(tenantId, null, new String[]{RandomStringUtils.secure().nextNumeric(10)}, "Message"); }, "SMS sending is disabled due to API limits!"); } @@ -103,7 +103,7 @@ public class DefaultSmsServiceTest extends AbstractControllerTest { TimeUnit.SECONDS.sleep(1); assertThrows(RuntimeException.class, () -> { - defaultSmsService.sendSms(tenantId, null, new String[]{RandomStringUtils.randomNumeric(10)}, "Message"); + defaultSmsService.sendSms(tenantId, null, new String[]{RandomStringUtils.secure().nextNumeric(10)}, "Message"); }, "SMS sending is disabled due to API limits!"); //enable sms messaging @@ -113,7 +113,7 @@ public class DefaultSmsServiceTest extends AbstractControllerTest { for (int i = 0; i < 10; i++) { doReturn(1).when(defaultSmsService).sendSms(any(), any()); - defaultSmsService.sendSms(tenantId, null, new String[]{RandomStringUtils.randomNumeric(10)}, "Message"); + defaultSmsService.sendSms(tenantId, null, new String[]{RandomStringUtils.secure().nextNumeric(10)}, "Message"); } } diff --git a/application/src/test/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionServiceTest.java b/application/src/test/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionServiceTest.java index 2eb7934792..aa17bf020a 100644 --- a/application/src/test/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionServiceTest.java @@ -126,13 +126,13 @@ public class DefaultTbLocalSubscriptionServiceTest { private TbSubscription createSubscription(TenantId tenantId, EntityId entityId) { Map keys = new HashMap<>(); for (int i = 0; i < 50; i++) { - keys.put(RandomStringUtils.randomAlphanumeric(5), 1L); + keys.put(RandomStringUtils.secure().nextAlphanumeric(5), 1L); } return TbAttributeSubscription.builder() .tenantId(tenantId) .entityId(entityId) .subscriptionId(1) - .sessionId(RandomStringUtils.randomAlphanumeric(5)) + .sessionId(RandomStringUtils.secure().nextAlphanumeric(5)) .keyStates(keys) .build(); } @@ -152,7 +152,7 @@ public class DefaultTbLocalSubscriptionServiceTest { .tenantId(tenantId) .entityId(deviceId) .subscriptionId(2) - .sessionId(RandomStringUtils.randomAlphanumeric(5)) + .sessionId(RandomStringUtils.secure().nextAlphanumeric(5)) .keyStates(keyStates) .allKeys(true) .latestValues(true) diff --git a/application/src/test/java/org/thingsboard/server/service/subscription/TbEntityDataSubCtxTest.java b/application/src/test/java/org/thingsboard/server/service/subscription/TbEntityDataSubCtxTest.java index 1d0e691c74..2c0594bd74 100644 --- a/application/src/test/java/org/thingsboard/server/service/subscription/TbEntityDataSubCtxTest.java +++ b/application/src/test/java/org/thingsboard/server/service/subscription/TbEntityDataSubCtxTest.java @@ -23,7 +23,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.test.util.ReflectionTestUtils; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomUtils; +import org.apache.commons.lang3.RandomUtils; import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.kv.BasicTsKvEntry; @@ -55,10 +55,10 @@ public class TbEntityDataSubCtxTest { private final DeviceId deviceId = new DeviceId(UUID.randomUUID()); - private final Integer cmdId = RandomUtils.nextInt(); - private final Integer subscriptionId = RandomUtils.nextInt(); - private final String serviceId = RandomStringUtils.randomAlphanumeric(10); - private final String sessionId = RandomStringUtils.randomAlphanumeric(10); + private final Integer cmdId = RandomUtils.secure().randomInt(); + private final Integer subscriptionId = RandomUtils.secure().randomInt(); + private final String serviceId = RandomStringUtils.secure().nextAlphanumeric(10); + private final String sessionId = RandomStringUtils.secure().nextAlphanumeric(10); private final int maxEntitiesPerDataSubscription = 100; diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java b/common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java index deb0f8c66e..3ad1e3f25b 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java @@ -23,6 +23,8 @@ import java.util.Arrays; import java.util.EnumSet; import java.util.List; +import static org.thingsboard.server.common.data.StringUtils.removeStart; + public enum EntityType { TENANT(1), diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/util/TemplateUtils.java b/common/data/src/main/java/org/thingsboard/server/common/data/util/TemplateUtils.java index beaec13748..d740a065ce 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/util/TemplateUtils.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/util/TemplateUtils.java @@ -23,7 +23,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import static com.google.common.base.Strings.nullToEmpty; -import static org.apache.commons.lang3.StringUtils.removeStart; +import static org.thingsboard.server.common.data.StringUtils.removeStart; public class TemplateUtils { diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/util/TypeCastUtil.java b/common/data/src/main/java/org/thingsboard/server/common/data/util/TypeCastUtil.java index 9fec33b482..3c9f143d39 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/util/TypeCastUtil.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/util/TypeCastUtil.java @@ -69,7 +69,7 @@ public class TypeCastUtil { } private static boolean isNumber(String value) { - return NumberUtils.isNumber(value.replace(',', '.')); + return NumberUtils.isCreatable(value.replace(',', '.')); } private static boolean isSimpleDouble(String valueAsString) { diff --git a/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java b/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java index 3602dd55ca..15dd615111 100644 --- a/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java +++ b/common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java @@ -99,6 +99,7 @@ import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.REJECTED_NODELET import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.REJECTED_NONFASTFORWARD; import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.REJECTED_OTHER_REASON; import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.REJECTED_REMOTE_CHANGED; +import static org.thingsboard.server.common.data.StringUtils.removeStart; @Slf4j public class GitRepository { @@ -448,7 +449,7 @@ public class GitRepository { private BranchInfo toBranchInfo(Ref ref) { String name = org.eclipse.jgit.lib.Repository.shortenRefName(ref.getName()); - String branchName = StringUtils.removeStart(name, "origin/"); + String branchName = removeStart(name, "origin/"); boolean isDefault = this.headId != null && this.headId.equals(ref.getObjectId()); return new BranchInfo(branchName, isDefault); } @@ -465,7 +466,7 @@ public class GitRepository { private ObjectId resolve(String rev) throws IOException { if (settings.isLocalOnly()) { - rev = StringUtils.removeStart(rev, "origin/"); + rev = removeStart(rev, "origin/"); } ObjectId result = git.getRepository().resolve(rev); if (result == null) { diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index 11bbe797cf..18023f653c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -173,7 +173,7 @@ public class BaseImageService extends BaseResourceService implements ImageServic } private String generatePublicResourceKey() { - return RandomStringUtils.randomAlphanumeric(32); + return RandomStringUtils.secure().nextAlphanumeric(32); } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index 432329a621..d96a7516c2 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -74,6 +74,7 @@ import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.UUID; @@ -82,6 +83,7 @@ import java.util.function.UnaryOperator; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import static org.thingsboard.server.common.data.StringUtils.isNotEmpty; +import static org.thingsboard.server.common.data.StringUtils.removeStart; import static org.thingsboard.server.dao.device.DeviceServiceImpl.INCORRECT_TENANT_ID; import static org.thingsboard.server.dao.service.Validator.validateId; @@ -589,7 +591,7 @@ public class BaseResourceService extends AbstractCachedEntityService { Asset asset = new Asset(); asset.setTenantId(anotherTenantId); - asset.setName(RandomStringUtils.randomAlphabetic(10)); + asset.setName(RandomStringUtils.secure().nextAlphabetic(10)); asset.setType("default"); assetService.saveAsset(asset); }); diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDaoTest.java index b207672004..72503c245b 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDaoTest.java @@ -18,7 +18,7 @@ package org.thingsboard.server.dao.sql.alarm; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.common.data.alarm.AlarmComment; @@ -84,7 +84,7 @@ public class JpaAlarmCommentDaoTest extends AbstractJpaDaoTest { alarmComment.setAlarmId(new AlarmId(alarmId)); alarmComment.setUserId(new UserId(userId)); alarmComment.setType(type); - alarmComment.setComment(JacksonUtil.newObjectNode().put("text", RandomStringUtils.randomAlphanumeric(10))); + alarmComment.setComment(JacksonUtil.newObjectNode().put("text", RandomStringUtils.secure().nextAlphanumeric(10))); alarmCommentDao.save(TenantId.fromUUID(UUID.randomUUID()), alarmComment); } } diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java index 8c259a4965..bbe8940347 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java @@ -21,7 +21,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.id.CustomerId; @@ -112,7 +112,7 @@ public class JpaUserSettingsDaoTest extends AbstractJpaDaoTest { private UserSettings createUserSettings(UserId userId) { UserSettings userSettings = new UserSettings(); userSettings.setType(UserSettingsType.GENERAL); - userSettings.setSettings(JacksonUtil.newObjectNode().put("text", RandomStringUtils.randomAlphanumeric(10))); + userSettings.setSettings(JacksonUtil.newObjectNode().put("text", RandomStringUtils.secure().nextAlphanumeric(10))); userSettings.setUserId(userId); return userSettingsDao.save(SYSTEM_TENANT_ID, userSettings); } diff --git a/dao/src/test/java/org/thingsboard/server/dao/sqlts/SqlTimeseriesLatestDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sqlts/SqlTimeseriesLatestDaoTest.java index 02abf1e5fd..c67ef1bfb0 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sqlts/SqlTimeseriesLatestDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sqlts/SqlTimeseriesLatestDaoTest.java @@ -171,7 +171,7 @@ public class SqlTimeseriesLatestDaoTest extends AbstractServiceTest { } private TsKvEntry createEntry(String key, long ts) { - return new BasicTsKvEntry(ts, new StringDataEntry(key, RandomStringUtils.random(10))); + return new BasicTsKvEntry(ts, new StringDataEntry(key, RandomStringUtils.secure().next(10))); } private void equalsIgnoreVersion(TsKvEntry expected, TsKvEntry actual) { diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/client/WsClient.java b/monitoring/src/main/java/org/thingsboard/monitoring/client/WsClient.java index 7e2f669f6b..6a2c7f6d56 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/client/WsClient.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/client/WsClient.java @@ -124,7 +124,7 @@ public class WsClient extends WebSocketClient implements AutoCloseable { public WsClient subscribeForTelemetry(List devices, List keys) { EntityDataCmd cmd = new EntityDataCmd(); - cmd.setCmdId(RandomUtils.nextInt(0, 1000)); + cmd.setCmdId(RandomUtils.secure().randomInt(0, 1000)); EntityListFilter devicesFilter = new EntityListFilter(); devicesFilter.setEntityType(EntityType.DEVICE); diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringEntityService.java b/monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringEntityService.java index d2c275945a..3469606943 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringEntityService.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringEntityService.java @@ -180,7 +180,7 @@ public class MonitoringEntityService { device.setName(deviceName); DeviceCredentials credentials = new DeviceCredentials(); - credentials.setCredentialsId(RandomStringUtils.randomAlphabetic(20)); + credentials.setCredentialsId(RandomStringUtils.secure().nextAlphabetic(20)); DeviceData deviceData = new DeviceData(); deviceData.setConfiguration(new DefaultDeviceConfiguration()); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttGatewayClientTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttGatewayClientTest.java index bb464ee52e..c9fa76cc9a 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttGatewayClientTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttGatewayClientTest.java @@ -29,7 +29,7 @@ import io.netty.handler.codec.mqtt.MqttQoS; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -400,7 +400,7 @@ public class MqttGatewayClientTest extends AbstractContainerTest { TimeUnit.SECONDS.sleep(30); } - String deviceName = "mqtt_device" + RandomStringUtils.randomAlphabetic(5); + String deviceName = "mqtt_device" + RandomStringUtils.secure().nextAlphabetic(5); mqttClient.publish("v1/gateway/connect", Unpooled.wrappedBuffer(createGatewayConnectPayload(deviceName).toString().getBytes()), MqttQoS.AT_LEAST_ONCE).get(); if (timeoutMultiplier > 1) { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java index c5673ae667..ecd062a15e 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java @@ -25,7 +25,7 @@ import org.apache.commons.io.IOUtils; import org.eclipse.leshan.client.object.Security; import org.eclipse.leshan.core.ResponseCode; import org.eclipse.leshan.core.util.Hex; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.testng.Assert; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.ThingsBoardThreadFactory; @@ -111,7 +111,7 @@ public class AbstractLwm2mClientTest extends AbstractContainerTest { public final Set expectedStatusesRegistrationLwm2mSuccess = new HashSet<>(Arrays.asList(ON_INIT, ON_REGISTRATION_STARTED, ON_REGISTRATION_SUCCESS)); public void createLwm2mDevicesForConnectNoSec(String name, Lwm2mDevicesForTest devicesForTest) throws Exception { - String clientEndpoint = name + "-" + RandomStringUtils.randomAlphanumeric(7); + String clientEndpoint = name + "-" + RandomStringUtils.secure().nextAlphanumeric(7); LwM2MDeviceCredentials deviceCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(clientEndpoint)); Device lwM2MDeviceTest = createDeviceWithCredentials(deviceCredentials, clientEndpoint, devicesForTest.getLwm2mDeviceProfile().getId()); LwM2MTestClient lwM2MTestClient = createNewClient(SECURITY_NO_SEC, clientEndpoint, executor); @@ -120,7 +120,7 @@ public class AbstractLwm2mClientTest extends AbstractContainerTest { } public void createLwm2mDevicesForConnectPsk(Lwm2mDevicesForTest devicesForTest) throws Exception { - String clientEndpoint = CLIENT_ENDPOINT_PSK + "-" + RandomStringUtils.randomAlphanumeric(7); + String clientEndpoint = CLIENT_ENDPOINT_PSK + "-" + RandomStringUtils.secure().nextAlphanumeric(7); String identity = CLIENT_PSK_IDENTITY; String keyPsk = CLIENT_PSK_KEY; PSKClientCredential clientCredentials = new PSKClientCredential(); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveCompositeTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveCompositeTest.java index 4ffc6f4c4f..2d77e43cd2 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveCompositeTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveCompositeTest.java @@ -15,7 +15,7 @@ */ package org.thingsboard.server.msa.connectivity.lwm2m.rpc; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -36,7 +36,7 @@ public class Lwm2mObserveCompositeTest extends AbstractLwm2mClientTest { @BeforeMethod public void setUp() throws Exception { testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); - this.lwm2mDevicesForTest = new Lwm2mDevicesForTest(initTest(name + "-profile" + RandomStringUtils.randomAlphanumeric(7))); + this.lwm2mDevicesForTest = new Lwm2mDevicesForTest(initTest(name + "-profile" + RandomStringUtils.secure().nextAlphanumeric(7))); } @AfterMethod @@ -46,7 +46,7 @@ public class Lwm2mObserveCompositeTest extends AbstractLwm2mClientTest { @Test public void testObserveResource_Update_AfterUpdateRegistration() throws Exception { - createLwm2mDevicesForConnectNoSec( name + "-" + RandomStringUtils.randomAlphanumeric(7), this.lwm2mDevicesForTest ); + createLwm2mDevicesForConnectNoSec( name + "-" + RandomStringUtils.secure().nextAlphanumeric(7), this.lwm2mDevicesForTest ); observeCompositeResource_Update_AfterUpdateRegistration_test(this.lwm2mDevicesForTest.getLwM2MTestClient(), this.lwm2mDevicesForTest.getLwM2MDeviceTest().getId()); } } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveTest.java index f47c328077..06b033391d 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveTest.java @@ -15,7 +15,7 @@ */ package org.thingsboard.server.msa.connectivity.lwm2m.rpc; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -36,7 +36,7 @@ public class Lwm2mObserveTest extends AbstractLwm2mClientTest { @BeforeMethod public void setUp() throws Exception { testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); - this.lwm2mDevicesForTest = new Lwm2mDevicesForTest(initTest(name + "-profile" + RandomStringUtils.randomAlphanumeric(7))); + this.lwm2mDevicesForTest = new Lwm2mDevicesForTest(initTest(name + "-profile" + RandomStringUtils.secure().nextAlphanumeric(7))); } @AfterMethod @@ -46,7 +46,7 @@ public class Lwm2mObserveTest extends AbstractLwm2mClientTest { @Test public void testObserveResource_Update_AfterUpdateRegistration() throws Exception { - createLwm2mDevicesForConnectNoSec( name + "-" + RandomStringUtils.randomAlphanumeric(7), this.lwm2mDevicesForTest ); + createLwm2mDevicesForConnectNoSec( name + "-" + RandomStringUtils.secure().nextAlphanumeric(7), this.lwm2mDevicesForTest ); observeResource_Update_AfterUpdateRegistration_test(this.lwm2mDevicesForTest.getLwM2MTestClient(), this.lwm2mDevicesForTest.getLwM2MDeviceTest().getId()); } } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientNoSecTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientNoSecTest.java index 2413094946..e579127a9c 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientNoSecTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientNoSecTest.java @@ -15,7 +15,7 @@ */ package org.thingsboard.server.msa.connectivity.lwm2m.security; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -34,7 +34,7 @@ public class Lwm2mClientNoSecTest extends AbstractLwm2mClientTest { @BeforeMethod public void setUp() throws Exception { testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); - this.lwm2mDevicesForTest = new Lwm2mDevicesForTest(initTest("lwm2m-NoSec-profile" + "-" + RandomStringUtils.randomAlphanumeric(7))); + this.lwm2mDevicesForTest = new Lwm2mDevicesForTest(initTest("lwm2m-NoSec-profile" + "-" + RandomStringUtils.secure().nextAlphanumeric(7))); } @AfterMethod diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientPskTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientPskTest.java index 268787794b..97712d96c0 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientPskTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientPskTest.java @@ -15,7 +15,7 @@ */ package org.thingsboard.server.msa.connectivity.lwm2m.security; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -33,7 +33,7 @@ public class Lwm2mClientPskTest extends AbstractLwm2mClientTest { @BeforeMethod public void setUp() throws Exception { testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); - this.lwm2mDevicesForTest = new Lwm2mDevicesForTest(initTest("lwm2m-Psk-profile" + "-" + RandomStringUtils.randomAlphanumeric(7))); + this.lwm2mDevicesForTest = new Lwm2mDevicesForTest(initTest("lwm2m-Psk-profile" + "-" + RandomStringUtils.secure().nextAlphanumeric(7))); } @AfterMethod diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/edqs/EdqsEntityDataQueryTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/edqs/EdqsEntityDataQueryTest.java index 2c266bb416..5bfd866056 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/edqs/EdqsEntityDataQueryTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/edqs/EdqsEntityDataQueryTest.java @@ -16,7 +16,7 @@ package org.thingsboard.server.msa.edqs; import com.fasterxml.jackson.databind.node.ObjectNode; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; @@ -68,7 +68,7 @@ public class EdqsEntityDataQueryTest extends AbstractContainerTest { private UserId customer2UserId; private final List tenantDevices = new ArrayList<>(); private final List tenant2Devices = new ArrayList<>(); - private final String deviceProfile = "LoRa-" + RandomStringUtils.randomAlphabetic(10); + private final String deviceProfile = "LoRa-" + RandomStringUtils.secure().nextAlphabetic(10); @BeforeClass public void beforeClass() throws Exception { @@ -188,7 +188,7 @@ public class EdqsEntityDataQueryTest extends AbstractContainerTest { device.setLabel("testLabel" + (int) (Math.random() * 1000)); //TO make sure devices have different created time Thread.sleep(1); - String token = RandomStringUtils.randomAlphabetic(10); + String token = RandomStringUtils.secure().nextAlphabetic(10); Device saved = testRestClient.postDevice(token, device); tenantDevices.add(saved); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/prototypes/DevicePrototypes.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/prototypes/DevicePrototypes.java index 3ba78b0171..c0f6af9443 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/prototypes/DevicePrototypes.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/prototypes/DevicePrototypes.java @@ -16,14 +16,14 @@ package org.thingsboard.server.msa.prototypes; import com.fasterxml.jackson.databind.JsonNode; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Device; public class DevicePrototypes { public static Device defaultDevicePrototype(String name){ Device device = new Device(); - device.setName(name + RandomStringUtils.randomAlphanumeric(7)); + device.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); device.setType("DEFAULT"); return device; } @@ -32,7 +32,7 @@ public class DevicePrototypes { String isGateway = "{\"gateway\":true}"; JsonNode additionalInfo = JacksonUtil.toJsonNode(isGateway); Device gatewayDeviceTemplate = new Device(); - gatewayDeviceTemplate.setName("mqtt_gateway_" + RandomStringUtils.randomAlphanumeric(5)); + gatewayDeviceTemplate.setName("mqtt_gateway_" + RandomStringUtils.secure().nextAlphanumeric(5)); gatewayDeviceTemplate.setType("gateway"); gatewayDeviceTemplate.setAdditionalInfo(additionalInfo); return gatewayDeviceTemplate; diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CreateWidgetPopupHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CreateWidgetPopupHelper.java index 9741ae9da6..66d7788073 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CreateWidgetPopupHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CreateWidgetPopupHelper.java @@ -17,7 +17,7 @@ package org.thingsboard.server.msa.ui.pages; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; public class CreateWidgetPopupHelper extends CreateWidgetPopupElements { public CreateWidgetPopupHelper(WebDriver driver) { @@ -25,7 +25,7 @@ public class CreateWidgetPopupHelper extends CreateWidgetPopupElements { } public void goToCreateEntityAliasPopup(String aliasName) { - entityAlias().sendKeys(aliasName + RandomStringUtils.randomAlphanumeric(7)); + entityAlias().sendKeys(aliasName + RandomStringUtils.secure().nextAlphanumeric(7)); createNewAliasBtn().click(); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java index d6e5f12c1b..d80ea5551a 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java @@ -15,7 +15,7 @@ */ package org.thingsboard.server.msa.ui.utils; -import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Dashboard; @@ -212,14 +212,14 @@ public class EntityPrototypes { public static Device defaultDevicePrototype(String name) { Device device = new Device(); - device.setName(name + RandomStringUtils.randomAlphanumeric(7)); + device.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); device.setType("DEFAULT"); return device; } public static Device defaultDevicePrototype(String name, CustomerId id) { Device device = new Device(); - device.setName(name + RandomStringUtils.randomAlphanumeric(7)); + device.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); device.setCustomerId(id); device.setType("DEFAULT"); return device; @@ -227,7 +227,7 @@ public class EntityPrototypes { public static Device defaultDevicePrototype(String name, String description) { Device device = new Device(); - device.setName(name + RandomStringUtils.randomAlphanumeric(7)); + device.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); device.setType("DEFAULT"); device.setAdditionalInfo(JacksonUtil.newObjectNode().put("description", description)); return device; @@ -235,7 +235,7 @@ public class EntityPrototypes { public static Device defaultDevicePrototype(String name, String description, String label) { Device device = new Device(); - device.setName(name + RandomStringUtils.randomAlphanumeric(7)); + device.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); device.setType("DEFAULT"); device.setAdditionalInfo(JacksonUtil.newObjectNode().put("description", description)); device.setLabel(label); @@ -244,7 +244,7 @@ public class EntityPrototypes { public static Device defaultDevicePrototype(String name, boolean gateway) { Device device = new Device(); - device.setName(name + RandomStringUtils.randomAlphanumeric(7)); + device.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); device.setType("DEFAULT"); device.setAdditionalInfo(JacksonUtil.newObjectNode().put("gateway", gateway)); return device; @@ -252,7 +252,7 @@ public class EntityPrototypes { public static Device defaultDevicePrototype(String name, boolean gateway, boolean overwriteActivityTime) { Device device = new Device(); - device.setName(name + RandomStringUtils.randomAlphanumeric(7)); + device.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); device.setType("DEFAULT"); device.setAdditionalInfo(JacksonUtil.newObjectNode() .put("gateway", gateway) @@ -262,7 +262,7 @@ public class EntityPrototypes { public static Device defaultDevicePrototype(String name, DeviceProfileId deviceProfileId) { Device device = new Device(); - device.setName(name + RandomStringUtils.randomAlphanumeric(7)); + device.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); device.setType("DEFAULT"); device.setDeviceProfileId(deviceProfileId); return device; @@ -270,7 +270,7 @@ public class EntityPrototypes { public static Asset defaultAssetPrototype(String name, CustomerId id) { Asset asset = new Asset(); - asset.setName(name + RandomStringUtils.randomAlphanumeric(7)); + asset.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); asset.setCustomerId(id); asset.setType("DEFAULT"); return asset; @@ -278,15 +278,15 @@ public class EntityPrototypes { public static EntityView defaultEntityViewPrototype(String name, String type, String entityType) { EntityView entityView = new EntityView(); - entityView.setName(name + RandomStringUtils.randomAlphanumeric(7)); - entityView.setType(type + RandomStringUtils.randomAlphanumeric(7)); + entityView.setName(name + RandomStringUtils.secure().nextAlphanumeric(7)); + entityView.setType(type + RandomStringUtils.secure().nextAlphanumeric(7)); entityView.setAdditionalInfo(JacksonUtil.newObjectNode().put("entityType", entityType)); return entityView; } public static Dashboard defaultDashboardPrototype(String title) { Dashboard dashboard = new Dashboard(); - dashboard.setTitle(title + RandomStringUtils.randomAlphanumeric(7)); + dashboard.setTitle(title + RandomStringUtils.secure().nextAlphanumeric(7)); return dashboard; } } diff --git a/tools/src/main/java/org/thingsboard/client/tools/migrator/PgCaMigrator.java b/tools/src/main/java/org/thingsboard/client/tools/migrator/PgCaMigrator.java index b88012c00e..2ef202dc9f 100644 --- a/tools/src/main/java/org/thingsboard/client/tools/migrator/PgCaMigrator.java +++ b/tools/src/main/java/org/thingsboard/client/tools/migrator/PgCaMigrator.java @@ -249,7 +249,7 @@ public class PgCaMigrator { private List castToNumericIfPossible(List values) { try { - if (values.get(6) != null && NumberUtils.isNumber(values.get(6).toString())) { + if (values.get(6) != null && NumberUtils.isCreatable(values.get(6).toString())) { Double casted = NumberUtils.createDouble(values.get(6).toString()); List numeric = Lists.newArrayList(); numeric.addAll(values);