Browse Source

chore(hygiene): replaced 24 deprecated commons-lang3 API calls on lts-4.2

- RandomStringUtils.randomAlphanumeric/Alphabetic/Numeric/random → secure().nextX (10)
- RandomUtils.nextInt/nextBytes → secure().randomX (3)
- NumberUtils.isNumber → isCreatable (2)
- StringUtils.equals → Objects.equals where both args are String (3)
- StringUtils.removeStart → common.data.StringUtils.removeStart wrapper (6)
pull/15509/head
Oleksandra Matviienko 5 months ago
parent
commit
0340612e09
  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/service/notification/AbstractNotificationApiTest.java
  6. 2
      application/src/test/java/org/thingsboard/server/service/notification/NotificationApiWsClient.java
  7. 4
      common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java
  8. 13
      common/data/src/main/java/org/thingsboard/server/common/data/StringUtils.java
  9. 2
      common/data/src/main/java/org/thingsboard/server/common/data/util/TemplateUtils.java
  10. 2
      common/data/src/main/java/org/thingsboard/server/common/data/util/TypeCastUtil.java
  11. 5
      common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/GitRepository.java
  12. 2
      dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java
  13. 8
      dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java
  14. 2
      monitoring/src/main/java/org/thingsboard/monitoring/client/WsClient.java
  15. 2
      monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringEntityService.java
  16. 2
      tools/src/main/java/org/thingsboard/client/tools/migrator/PgCaMigrator.java

2
application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java

@ -330,7 +330,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService {
private String generateRandomKey() { private String generateRandomKey() {
return Base64.getEncoder().encodeToString( return Base64.getEncoder().encodeToString(
RandomStringUtils.randomAlphanumeric(64).getBytes(StandardCharsets.UTF_8)); RandomStringUtils.secure().nextAlphanumeric(64).getBytes(StandardCharsets.UTF_8));
} }
@Override @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() { 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.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
@NoArgsConstructor @NoArgsConstructor
@ -33,7 +33,7 @@ public enum WebSocketSessionType {
public static Optional<WebSocketSessionType> forName(String name) { public static Optional<WebSocketSessionType> forName(String name) {
return Arrays.stream(values()) return Arrays.stream(values())
.filter(sessionType -> StringUtils.equals(sessionType.name, name)) .filter(sessionType -> Objects.equals(sessionType.name, name))
.findFirst(); .findFirst();
} }

2
application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java

@ -1223,7 +1223,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest {
protected NotificationTarget createNotificationTarget(UsersFilter usersFilter) { protected NotificationTarget createNotificationTarget(UsersFilter usersFilter) {
NotificationTarget notificationTarget = new NotificationTarget(); NotificationTarget notificationTarget = new NotificationTarget();
notificationTarget.setName(usersFilter.toString() + RandomStringUtils.randomNumeric(5)); notificationTarget.setName(usersFilter.toString() + RandomStringUtils.secure().nextNumeric(5));
PlatformUsersNotificationTargetConfig targetConfig = new PlatformUsersNotificationTargetConfig(); PlatformUsersNotificationTargetConfig targetConfig = new PlatformUsersNotificationTargetConfig();
targetConfig.setUsersFilter(usersFilter); targetConfig.setUsersFilter(usersFilter);
notificationTarget.setConfiguration(targetConfig); notificationTarget.setConfiguration(targetConfig);

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 user = new User();
user.setTenantId(tenantId); user.setTenantId(tenantId);
user.setAuthority(authority); user.setAuthority(authority);
user.setEmail(RandomStringUtils.randomAlphabetic(20) + "@thingsboard.com"); user.setEmail(RandomStringUtils.secure().nextAlphabetic(20) + "@thingsboard.com");
user = createUserAndLogin(user, "12345678"); user = createUserAndLogin(user, "12345678");
NotificationApiWsClient wsClient = buildAndConnectWebSocketClient(); NotificationApiWsClient wsClient = buildAndConnectWebSocketClient();
return Pair.of(user, wsClient); 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() { private int newCmdId() {
return RandomUtils.nextInt(1, 1000); return RandomUtils.secure().randomInt(1, 1000);
} }
} }

4
common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java

@ -22,6 +22,8 @@ import java.util.Arrays;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
import static org.thingsboard.server.common.data.StringUtils.removeStart;
public enum EntityType { public enum EntityType {
TENANT(1), TENANT(1),
CUSTOMER(2), CUSTOMER(2),
@ -76,7 +78,7 @@ public enum EntityType {
@Getter @Getter
private final String tableName; private final String tableName;
@Getter @Getter
private final String normalName = StringUtils.capitalize(StringUtils.removeStart(name(), "TB_") private final String normalName = StringUtils.capitalize(removeStart(name(), "TB_")
.toLowerCase().replaceAll("_", " ")); .toLowerCase().replaceAll("_", " "));
public static final List<String> NORMAL_NAMES = EnumSet.allOf(EntityType.class).stream() public static final List<String> NORMAL_NAMES = EnumSet.allOf(EntityType.class).stream()

13
common/data/src/main/java/org/thingsboard/server/common/data/StringUtils.java

@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Base64; import java.util.Base64;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.function.Function; import java.util.function.Function;
import static org.apache.commons.lang3.StringUtils.repeat; import static org.apache.commons.lang3.StringUtils.repeat;
@ -155,7 +156,7 @@ public class StringUtils {
} }
public static boolean equals(String str1, String str2) { public static boolean equals(String str1, String str2) {
return org.apache.commons.lang3.StringUtils.equals(str1, str2); return Objects.equals(str1, str2);
} }
public static boolean equalsAny(String string, String... otherStrings) { public static boolean equalsAny(String string, String... otherStrings) {
@ -210,23 +211,23 @@ public class StringUtils {
} }
public static String randomNumeric(int length) { public static String randomNumeric(int length) {
return RandomStringUtils.randomNumeric(length); return RandomStringUtils.secure().nextNumeric(length);
} }
public static String random(int length) { public static String random(int length) {
return RandomStringUtils.random(length); return RandomStringUtils.secure().next(length);
} }
public static String random(int length, String chars) { public static String random(int length, String chars) {
return RandomStringUtils.random(length, chars); return RandomStringUtils.secure().next(length, chars);
} }
public static String randomAlphanumeric(int count) { public static String randomAlphanumeric(int count) {
return RandomStringUtils.randomAlphanumeric(count); return RandomStringUtils.secure().nextAlphanumeric(count);
} }
public static String randomAlphabetic(int count) { public static String randomAlphabetic(int count) {
return RandomStringUtils.randomAlphabetic(count); return RandomStringUtils.secure().nextAlphabetic(count);
} }
public static String generateSafeToken(int length) { public static String generateSafeToken(int length) {

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 java.util.regex.Pattern;
import static com.google.common.base.Strings.nullToEmpty; 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 { public class TemplateUtils {

2
common/data/src/main/java/org/thingsboard/server/common/data/util/TypeCastUtil.java

@ -63,7 +63,7 @@ public class TypeCastUtil {
} }
private static boolean isNumber(String value) { private static boolean isNumber(String value) {
return NumberUtils.isNumber(value.replace(',', '.')); return NumberUtils.isCreatable(value.replace(',', '.'));
} }
private static boolean isSimpleDouble(String valueAsString) { 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_NONFASTFORWARD;
import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.REJECTED_OTHER_REASON; 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.eclipse.jgit.transport.RemoteRefUpdate.Status.REJECTED_REMOTE_CHANGED;
import static org.thingsboard.server.common.data.StringUtils.removeStart;
@Slf4j @Slf4j
public class GitRepository { public class GitRepository {
@ -448,7 +449,7 @@ public class GitRepository {
private BranchInfo toBranchInfo(Ref ref) { private BranchInfo toBranchInfo(Ref ref) {
String name = org.eclipse.jgit.lib.Repository.shortenRefName(ref.getName()); 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()); boolean isDefault = this.headId != null && this.headId.equals(ref.getObjectId());
return new BranchInfo(branchName, isDefault); return new BranchInfo(branchName, isDefault);
} }
@ -465,7 +466,7 @@ public class GitRepository {
private ObjectId resolve(String rev) throws IOException { private ObjectId resolve(String rev) throws IOException {
if (settings.isLocalOnly()) { if (settings.isLocalOnly()) {
rev = StringUtils.removeStart(rev, "origin/"); rev = removeStart(rev, "origin/");
} }
ObjectId result = git.getRepository().resolve(rev); ObjectId result = git.getRepository().resolve(rev);
if (result == null) { 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() { private String generatePublicResourceKey() {
return RandomStringUtils.randomAlphanumeric(32); return RandomStringUtils.secure().nextAlphanumeric(32);
} }
@Override @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.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
@ -82,6 +83,7 @@ import java.util.function.UnaryOperator;
import static com.google.common.util.concurrent.MoreExecutors.directExecutor; 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.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.device.DeviceServiceImpl.INCORRECT_TENANT_ID;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
@ -588,7 +590,7 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
String resourceKey; String resourceKey;
TenantId resourceTenantId; TenantId resourceTenantId;
try { try {
String[] parts = StringUtils.removeStart(link, "/api/resource/").split("/"); String[] parts = removeStart(link, "/api/resource/").split("/");
resourceType = ResourceType.valueOf(parts[0].toUpperCase()); resourceType = ResourceType.valueOf(parts[0].toUpperCase());
String scope = parts[1]; String scope = parts[1];
resourceKey = parts[2]; resourceKey = parts[2];
@ -611,7 +613,7 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
private String getResourceLink(String value) { private String getResourceLink(String value) {
if (StringUtils.startsWith(value, DataConstants.TB_RESOURCE_PREFIX + "/api/resource/")) { 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 { } else {
return null; return null;
} }
@ -658,7 +660,7 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
} }
String newValue = processor.apply(value); String newValue = processor.apply(value);
if (StringUtils.equals(value, newValue)) { if (Objects.equals(value, newValue)) {
return value; return value;
} else { } else {
updated.set(true); updated.set(true);

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) { public WsClient subscribeForTelemetry(List<UUID> devices, List<String> keys) {
EntityDataCmd cmd = new EntityDataCmd(); EntityDataCmd cmd = new EntityDataCmd();
cmd.setCmdId(RandomUtils.nextInt(0, 1000)); cmd.setCmdId(RandomUtils.secure().randomInt(0, 1000));
EntityListFilter devicesFilter = new EntityListFilter(); EntityListFilter devicesFilter = new EntityListFilter();
devicesFilter.setEntityType(EntityType.DEVICE); devicesFilter.setEntityType(EntityType.DEVICE);

2
monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringEntityService.java

@ -162,7 +162,7 @@ public class MonitoringEntityService {
device.setName(deviceName); device.setName(deviceName);
DeviceCredentials credentials = new DeviceCredentials(); DeviceCredentials credentials = new DeviceCredentials();
credentials.setCredentialsId(RandomStringUtils.randomAlphabetic(20)); credentials.setCredentialsId(RandomStringUtils.secure().nextAlphabetic(20));
DeviceData deviceData = new DeviceData(); DeviceData deviceData = new DeviceData();
deviceData.setConfiguration(new DefaultDeviceConfiguration()); deviceData.setConfiguration(new DefaultDeviceConfiguration());

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) { private List<Object> castToNumericIfPossible(List<Object> values) {
try { 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()); Double casted = NumberUtils.createDouble(values.get(6).toString());
List<Object> numeric = Lists.newArrayList(); List<Object> numeric = Lists.newArrayList();
numeric.addAll(values); numeric.addAll(values);

Loading…
Cancel
Save