Commit ca4e9238c88bb69e2abec04ec8be4a2740d1ead0

Authored by zbeacon
1 parent 6e4c4049

Fix for device provision tests

... ... @@ -15,8 +15,6 @@
15 15 */
16 16 package org.thingsboard.server.mqtt.provision;
17 17
18   -import com.google.gson.JsonObject;
19   -import com.sun.mail.iap.ByteArray;
20 18 import io.netty.handler.codec.mqtt.MqttQoS;
21 19 import lombok.extern.slf4j.Slf4j;
22 20 import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
... ... @@ -35,12 +33,10 @@ import org.thingsboard.server.common.data.device.profile.MqttTopics;
35 33 import org.thingsboard.server.common.data.security.DeviceCredentials;
36 34 import org.thingsboard.server.common.data.security.DeviceCredentialsType;
37 35 import org.thingsboard.server.common.msg.EncryptionUtil;
38   -import org.thingsboard.server.common.transport.util.JsonUtils;
39 36 import org.thingsboard.server.dao.device.DeviceCredentialsService;
40 37 import org.thingsboard.server.dao.device.DeviceService;
41 38 import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus;
42 39 import org.thingsboard.server.dao.util.mapping.JacksonUtil;
43   -import org.thingsboard.server.gen.transport.TransportProtos;
44 40 import org.thingsboard.server.gen.transport.TransportProtos.CredentialsDataProto;
45 41 import org.thingsboard.server.gen.transport.TransportProtos.CredentialsType;
46 42 import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceCredentialsMsg;
... ... @@ -129,7 +125,7 @@ public abstract class AbstractMqttProvisionProtoDeviceTest extends AbstractMqttI
129 125 }
130 126
131 127 protected void processTestProvisioningCreateNewDeviceWithAccessToken() throws Exception {
132   - super.processBeforeTest("Test Provision device3", "Test Provision gateway", TransportPayloadType.JSON, null, null, DeviceProfileProvisionType.ALLOW_CREATE_NEW_DEVICES, "testProvisionKey", "testProvisionSecret");
  128 + super.processBeforeTest("Test Provision device3", "Test Provision gateway", TransportPayloadType.PROTOBUF, null, null, DeviceProfileProvisionType.ALLOW_CREATE_NEW_DEVICES, "testProvisionKey", "testProvisionSecret");
133 129 CredentialsDataProto requestCredentials = CredentialsDataProto.newBuilder().setValidateDeviceTokenRequestMsg(ValidateDeviceTokenRequestMsg.newBuilder().setToken("test_token").build()).build();
134 130
135 131 ProvisionDeviceResponseMsg response = ProvisionDeviceResponseMsg.parseFrom(createMqttClientAndPublish(createTestsProvisionMessage(CredentialsType.ACCESS_TOKEN, requestCredentials)).getPayloadBytes());
... ... @@ -149,7 +145,7 @@ public abstract class AbstractMqttProvisionProtoDeviceTest extends AbstractMqttI
149 145 }
150 146
151 147 protected void processTestProvisioningCreateNewDeviceWithCert() throws Exception {
152   - super.processBeforeTest("Test Provision device3", "Test Provision gateway", TransportPayloadType.JSON, null, null, DeviceProfileProvisionType.ALLOW_CREATE_NEW_DEVICES, "testProvisionKey", "testProvisionSecret");
  148 + super.processBeforeTest("Test Provision device3", "Test Provision gateway", TransportPayloadType.PROTOBUF, null, null, DeviceProfileProvisionType.ALLOW_CREATE_NEW_DEVICES, "testProvisionKey", "testProvisionSecret");
153 149 CredentialsDataProto requestCredentials = CredentialsDataProto.newBuilder().setValidateDeviceX509CertRequestMsg(ValidateDeviceX509CertRequestMsg.newBuilder().setHash("testHash").build()).build();
154 150
155 151 ProvisionDeviceResponseMsg response = ProvisionDeviceResponseMsg.parseFrom(createMqttClientAndPublish(createTestsProvisionMessage(CredentialsType.X509_CERTIFICATE, requestCredentials)).getPayloadBytes());
... ... @@ -175,7 +171,7 @@ public abstract class AbstractMqttProvisionProtoDeviceTest extends AbstractMqttI
175 171 }
176 172
177 173 protected void processTestProvisioningCreateNewDeviceWithMqttBasic() throws Exception {
178   - super.processBeforeTest("Test Provision device3", "Test Provision gateway", TransportPayloadType.JSON, null, null, DeviceProfileProvisionType.ALLOW_CREATE_NEW_DEVICES, "testProvisionKey", "testProvisionSecret");
  174 + super.processBeforeTest("Test Provision device3", "Test Provision gateway", TransportPayloadType.PROTOBUF, null, null, DeviceProfileProvisionType.ALLOW_CREATE_NEW_DEVICES, "testProvisionKey", "testProvisionSecret");
179 175 CredentialsDataProto requestCredentials = CredentialsDataProto.newBuilder().setValidateBasicMqttCredRequestMsg(
180 176 ValidateBasicMqttCredRequestMsg.newBuilder()
181 177 .setClientId("test_clientId")
... ...
... ... @@ -472,6 +472,7 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe
472 472 }
473 473
474 474 @Override
  475 + @CacheEvict(cacheNames = DEVICE_CACHE, key = "{#profile.tenantId, #provisionRequest.deviceName}")
475 476 @Transactional
476 477 public Device saveDevice(ProvisionRequest provisionRequest, DeviceProfile profile) {
477 478 Device device = new Device();
... ... @@ -485,10 +486,13 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe
485 486 !StringUtils.isEmpty(provisionRequest.getCredentialsData().getPassword()) ||
486 487 !StringUtils.isEmpty(provisionRequest.getCredentialsData().getClientId())) {
487 488 DeviceCredentials deviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(savedDevice.getTenantId(), savedDevice.getId());
  489 + if (deviceCredentials == null) {
  490 + deviceCredentials = new DeviceCredentials();
  491 + }
  492 + deviceCredentials.setDeviceId(savedDevice.getId());
488 493 deviceCredentials.setCredentialsType(provisionRequest.getCredentialsType());
489 494 switch (provisionRequest.getCredentialsType()) {
490 495 case ACCESS_TOKEN:
491   - deviceCredentials.setDeviceId(savedDevice.getId());
492 496 deviceCredentials.setCredentialsId(provisionRequest.getCredentialsData().getToken());
493 497 break;
494 498 case MQTT_BASIC:
... ... @@ -502,7 +506,6 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe
502 506 deviceCredentials.setCredentialsValue(provisionRequest.getCredentialsData().getX509CertHash());
503 507 break;
504 508 }
505   - deviceCredentials.setCredentialsType(provisionRequest.getCredentialsType());
506 509 try {
507 510 deviceCredentialsService.updateDeviceCredentials(savedDevice.getTenantId(), deviceCredentials);
508 511 } catch (Exception e) {
... ...