Browse Source

Replaced deprecated string, number, and random-value helpers with modern equivalents

pull/15661/head
Oleksandra Matviienko 3 months ago
parent
commit
fae07e9140
  1. 2
      application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java
  2. 2
      application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/TotpTwoFaProvider.java
  3. 4
      application/src/main/java/org/thingsboard/server/service/ws/WebSocketSessionType.java
  4. 2
      application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java
  5. 2
      application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java
  6. 6
      application/src/test/java/org/thingsboard/server/controller/AlarmCommentControllerTest.java
  7. 8
      application/src/test/java/org/thingsboard/server/controller/AuthControllerTest.java
  8. 2
      application/src/test/java/org/thingsboard/server/controller/BaseQueueControllerTest.java
  9. 4
      application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java
  10. 4
      application/src/test/java/org/thingsboard/server/controller/UserControllerTest.java
  11. 4
      application/src/test/java/org/thingsboard/server/controller/WebsocketApiTest.java
  12. 2
      application/src/test/java/org/thingsboard/server/queue/discovery/HashPartitionServiceTest.java
  13. 6
      application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java
  14. 4
      application/src/test/java/org/thingsboard/server/service/housekeeper/HousekeeperServiceTest.java
  15. 2
      application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java
  16. 2
      application/src/test/java/org/thingsboard/server/service/notification/NotificationApiWsClient.java
  17. 2
      application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java
  18. 14
      application/src/test/java/org/thingsboard/server/service/queue/ruleengine/TbRuleEngineQueueConsumerManagerTest.java
  19. 10
      application/src/test/java/org/thingsboard/server/service/sms/DefaultSmsServiceTest.java
  20. 6
      application/src/test/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionServiceTest.java
  21. 10
      application/src/test/java/org/thingsboard/server/service/subscription/TbEntityDataSubCtxTest.java
  22. 2
      common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java
  23. 2
      common/data/src/main/java/org/thingsboard/server/common/data/util/TemplateUtils.java
  24. 2
      common/data/src/main/java/org/thingsboard/server/common/data/util/TypeCastUtil.java
  25. 5
      common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java
  26. 2
      dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java
  27. 8
      dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java
  28. 6
      dao/src/test/java/org/thingsboard/server/dao/service/AdminSettingsServiceTest.java
  29. 8
      dao/src/test/java/org/thingsboard/server/dao/service/AlarmCommentServiceTest.java
  30. 4
      dao/src/test/java/org/thingsboard/server/dao/service/AssetServiceTest.java
  31. 4
      dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmCommentDaoTest.java
  32. 4
      dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java
  33. 2
      dao/src/test/java/org/thingsboard/server/dao/sqlts/SqlTimeseriesLatestDaoTest.java
  34. 2
      monitoring/src/main/java/org/thingsboard/monitoring/client/WsClient.java
  35. 2
      monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringEntityService.java
  36. 4
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttGatewayClientTest.java
  37. 6
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java
  38. 6
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveCompositeTest.java
  39. 6
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/rpc/Lwm2mObserveTest.java
  40. 4
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientNoSecTest.java
  41. 4
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/security/Lwm2mClientPskTest.java
  42. 6
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/edqs/EdqsEntityDataQueryTest.java
  43. 6
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/prototypes/DevicePrototypes.java
  44. 4
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CreateWidgetPopupHelper.java
  45. 24
      msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java
  46. 2
      tools/src/main/java/org/thingsboard/client/tools/migrator/PgCaMigrator.java

2
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

2
application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/TotpTwoFaProvider.java

@ -62,7 +62,7 @@ public class TotpTwoFaProvider implements TwoFaProvider<TotpTwoFaProviderConfig,
}
private String generateSecretKey() {
return Base32.encode(RandomUtils.nextBytes(20));
return Base32.encode(RandomUtils.secure().randomBytes(20));
}

4
application/src/main/java/org/thingsboard/server/service/ws/WebSocketSessionType.java

@ -17,9 +17,9 @@ package org.thingsboard.server.service.ws;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
@NoArgsConstructor
@ -33,7 +33,7 @@ public enum WebSocketSessionType {
public static Optional<WebSocketSessionType> forName(String name) {
return Arrays.stream(values())
.filter(sessionType -> StringUtils.equals(sessionType.name, name))
.filter(sessionType -> Objects.equals(sessionType.name, name))
.findFirst();
}

2
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);

2
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());

6
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<AlarmComment> 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))
);
}

8
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);

2
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

4
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<Device> 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);

4
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);

4
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);

2
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<QueueKey> queues = Stream.generate(() -> RandomStringUtils.randomAlphabetic(10))
List<QueueKey> queues = Stream.generate(() -> RandomStringUtils.secure().nextAlphabetic(10))
.map(queueName -> new QueueKey(ServiceType.TB_RULE_ENGINE, queueName, tenantId))
.limit(100).toList();

6
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<Device> 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)

4
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();
}

2
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);

2
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);
}
}

2
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);

14
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<Set<TopicPartitionInfo>> 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));

10
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");
}
}

6
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<String, Long> 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)

10
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;

2
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),

2
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 {

2
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) {

5
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) {

2
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

8
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<ResourceInf
String resourceKey;
TenantId resourceTenantId;
try {
String[] parts = StringUtils.removeStart(link, "/api/resource/").split("/");
String[] parts = removeStart(link, "/api/resource/").split("/");
resourceType = ResourceType.valueOf(parts[0].toUpperCase());
String scope = parts[1];
resourceKey = parts[2];
@ -612,7 +614,7 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
private String getResourceLink(String value) {
if (StringUtils.startsWith(value, DataConstants.TB_RESOURCE_PREFIX + "/api/resource/")) {
return StringUtils.removeStart(value, DataConstants.TB_RESOURCE_PREFIX);
return removeStart(value, DataConstants.TB_RESOURCE_PREFIX);
} else {
return null;
}
@ -659,7 +661,7 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
}
String newValue = processor.apply(value);
if (StringUtils.equals(value, newValue)) {
if (Objects.equals(value, newValue)) {
return value;
} else {
updated.set(true);

6
dao/src/test/java/org/thingsboard/server/dao/service/AdminSettingsServiceTest.java

@ -21,7 +21,7 @@ import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
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.AdminSettings;
import org.thingsboard.server.common.data.id.TenantId;
@ -90,7 +90,7 @@ public class AdminSettingsServiceTest extends AbstractServiceTest {
@Test
public void whenSavingAdminSettingsWithAlreadyExistingKey_thenReturnError() {
String key = RandomStringUtils.randomAlphanumeric(15);
String key = RandomStringUtils.secure().nextAlphanumeric(15);
ObjectNode value = JacksonUtil.newObjectNode().put("test", "test");
AdminSettings systemSettings = new AdminSettings();
@ -124,7 +124,7 @@ public class AdminSettingsServiceTest extends AbstractServiceTest {
for (int i = 0; i < totalElements; i++) {
AdminSettings settings = new AdminSettings();
settings.setTenantId(tenantId);
String key = RandomStringUtils.randomAlphanumeric(15);
String key = RandomStringUtils.secure().nextAlphanumeric(15);
settings.setKey(key);
settings.setJsonValue(JacksonUtil.newObjectNode().put("value", i));
adminSettingsService.saveAdminSettings(tenantId, settings);

8
dao/src/test/java/org/thingsboard/server/dao/service/AlarmCommentServiceTest.java

@ -21,7 +21,7 @@ import org.junit.Assert;
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.alarm.Alarm;
@ -87,7 +87,7 @@ public class AlarmCommentServiceTest extends AbstractServiceTest {
AlarmComment alarmComment = AlarmComment.builder().alarmId(alarm.getId())
.userId(user.getId())
.type(OTHER)
.comment(JacksonUtil.newObjectNode().put("text", RandomStringUtils.randomAlphanumeric(10)))
.comment(JacksonUtil.newObjectNode().put("text", RandomStringUtils.secure().nextAlphanumeric(10)))
.build();
AlarmComment createdComment = alarmCommentService.createOrUpdateAlarmComment(tenantId, alarmComment);
@ -115,7 +115,7 @@ public class AlarmCommentServiceTest extends AbstractServiceTest {
AlarmComment alarmComment = AlarmComment.builder().alarmId(alarm.getId())
.userId(userId)
.type(OTHER)
.comment(JacksonUtil.newObjectNode().put("text", RandomStringUtils.randomAlphanumeric(10)))
.comment(JacksonUtil.newObjectNode().put("text", RandomStringUtils.secure().nextAlphanumeric(10)))
.build();
AlarmComment createdComment = alarmCommentService.createOrUpdateAlarmComment(tenantId, alarmComment);
@ -151,7 +151,7 @@ public class AlarmCommentServiceTest extends AbstractServiceTest {
AlarmComment alarmComment = AlarmComment.builder().alarmId(alarm.getId())
.userId(userId)
.type(OTHER)
.comment(JacksonUtil.newObjectNode().put("text", RandomStringUtils.randomAlphanumeric(10)))
.comment(JacksonUtil.newObjectNode().put("text", RandomStringUtils.secure().nextAlphanumeric(10)))
.build();
AlarmComment createdComment = alarmCommentService.createOrUpdateAlarmComment(tenantId, alarmComment);

4
dao/src/test/java/org/thingsboard/server/dao/service/AssetServiceTest.java

@ -27,7 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.testcontainers.shaded.org.awaitility.Awaitility;
import org.thingsboard.common.util.ThingsBoardThreadFactory;
import org.thingsboard.server.common.data.Customer;
@ -151,7 +151,7 @@ public class AssetServiceTest extends AbstractServiceTest {
executor.submit(() -> {
Asset asset = new Asset();
asset.setTenantId(anotherTenantId);
asset.setName(RandomStringUtils.randomAlphabetic(10));
asset.setName(RandomStringUtils.secure().nextAlphabetic(10));
asset.setType("default");
assetService.saveAsset(asset);
});

4
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);
}
}

4
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);
}

2
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) {

2
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<UUID> devices, List<String> 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);

2
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());

4
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) {

6
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<LwM2MClientState> 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();

6
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());
}
}

6
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());
}
}

4
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

4
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

6
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<Device> tenantDevices = new ArrayList<>();
private final List<Device> 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);

6
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;

4
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();
}

24
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;
}
}

2
tools/src/main/java/org/thingsboard/client/tools/migrator/PgCaMigrator.java

@ -249,7 +249,7 @@ public class PgCaMigrator {
private List<Object> castToNumericIfPossible(List<Object> 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<Object> numeric = Lists.newArrayList();
numeric.addAll(values);

Loading…
Cancel
Save