From a852e11a3da348c1e1400f3068821a74865a5ec6 Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Thu, 21 Oct 2021 16:09:22 +0300 Subject: [PATCH] Refactor bulk import --- .../server/service/device/DeviceBulkImportService.java | 4 +++- .../server/service/importing/AbstractBulkImportService.java | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/service/device/DeviceBulkImportService.java b/application/src/main/java/org/thingsboard/server/service/device/DeviceBulkImportService.java index 707674f6ba..6e31fa1d73 100644 --- a/application/src/main/java/org/thingsboard/server/service/device/DeviceBulkImportService.java +++ b/application/src/main/java/org/thingsboard/server/service/device/DeviceBulkImportService.java @@ -113,8 +113,10 @@ public class DeviceBulkImportService extends AbstractBulkImportService { DeviceProfile deviceProfile; if (deviceCredentials.getCredentialsType() == DeviceCredentialsType.LWM2M_CREDENTIALS) { deviceProfile = setUpLwM2mDeviceProfile(user.getTenantId(), device); - } else { + } else if (StringUtils.isNotEmpty(device.getType())) { deviceProfile = deviceProfileService.findOrCreateDeviceProfile(user.getTenantId(), device.getType()); + } else { + deviceProfile = deviceProfileService.findDefaultDeviceProfile(user.getTenantId()); } device.setDeviceProfileId(deviceProfile.getId()); diff --git a/application/src/main/java/org/thingsboard/server/service/importing/AbstractBulkImportService.java b/application/src/main/java/org/thingsboard/server/service/importing/AbstractBulkImportService.java index a1e3ff16ef..bbd18a1f73 100644 --- a/application/src/main/java/org/thingsboard/server/service/importing/AbstractBulkImportService.java +++ b/application/src/main/java/org/thingsboard/server/service/importing/AbstractBulkImportService.java @@ -23,6 +23,8 @@ import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; import org.thingsboard.common.util.DonAsynchron; import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.server.cluster.TbClusterService; @@ -93,7 +95,11 @@ public abstract class AbstractBulkImportService result = new BulkImportResult<>(); CountDownLatch completionLatch = new CountDownLatch(entitiesData.size()); + SecurityContext securityContext = SecurityContextHolder.getContext(); + entitiesData.forEach(entityData -> DonAsynchron.submit(() -> { + SecurityContextHolder.setContext(securityContext); + ImportedEntityInfo importedEntityInfo = saveEntity(request, entityData.getFields(), user); E entity = importedEntityInfo.getEntity();