Transport Type check
This commit is contained in:
parent
d440d500e5
commit
b9b82446eb
@ -24,6 +24,7 @@ import org.eclipse.californium.core.network.ExchangeObserver;
|
|||||||
import org.eclipse.californium.core.server.resources.CoapExchange;
|
import org.eclipse.californium.core.server.resources.CoapExchange;
|
||||||
import org.eclipse.californium.core.server.resources.Resource;
|
import org.eclipse.californium.core.server.resources.Resource;
|
||||||
import org.springframework.util.ReflectionUtils;
|
import org.springframework.util.ReflectionUtils;
|
||||||
|
import org.thingsboard.server.common.data.DeviceTransportType;
|
||||||
import org.thingsboard.server.common.data.security.DeviceTokenCredentials;
|
import org.thingsboard.server.common.data.security.DeviceTokenCredentials;
|
||||||
import org.thingsboard.server.common.msg.session.FeatureType;
|
import org.thingsboard.server.common.msg.session.FeatureType;
|
||||||
import org.thingsboard.server.common.msg.session.SessionMsgType;
|
import org.thingsboard.server.common.msg.session.SessionMsgType;
|
||||||
@ -145,7 +146,7 @@ public class CoapTransportResource extends CoapResource {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
transportService.process(TransportProtos.ValidateDeviceTokenRequestMsg.newBuilder().setToken(credentials.get().getCredentialsId()).build(),
|
transportService.process(DeviceTransportType.DEFAULT, TransportProtos.ValidateDeviceTokenRequestMsg.newBuilder().setToken(credentials.get().getCredentialsId()).build(),
|
||||||
new DeviceAuthCallback(transportContext, exchange, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, exchange, sessionInfo -> {
|
||||||
UUID sessionId = new UUID(sessionInfo.getSessionIdMSB(), sessionInfo.getSessionIdLSB());
|
UUID sessionId = new UUID(sessionInfo.getSessionIdMSB(), sessionInfo.getSessionIdLSB());
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.context.request.async.DeferredResult;
|
import org.springframework.web.context.request.async.DeferredResult;
|
||||||
|
import org.thingsboard.server.common.data.DeviceTransportType;
|
||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
import org.thingsboard.server.common.transport.SessionMsgListener;
|
import org.thingsboard.server.common.transport.SessionMsgListener;
|
||||||
import org.thingsboard.server.common.transport.TransportContext;
|
import org.thingsboard.server.common.transport.TransportContext;
|
||||||
@ -78,7 +79,7 @@ public class DeviceApiController {
|
|||||||
@RequestParam(value = "sharedKeys", required = false, defaultValue = "") String sharedKeys,
|
@RequestParam(value = "sharedKeys", required = false, defaultValue = "") String sharedKeys,
|
||||||
HttpServletRequest httpRequest) {
|
HttpServletRequest httpRequest) {
|
||||||
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
||||||
transportContext.getTransportService().process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
||||||
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
||||||
GetAttributeRequestMsg.Builder request = GetAttributeRequestMsg.newBuilder().setRequestId(0);
|
GetAttributeRequestMsg.Builder request = GetAttributeRequestMsg.newBuilder().setRequestId(0);
|
||||||
List<String> clientKeySet = !StringUtils.isEmpty(clientKeys) ? Arrays.asList(clientKeys.split(",")) : null;
|
List<String> clientKeySet = !StringUtils.isEmpty(clientKeys) ? Arrays.asList(clientKeys.split(",")) : null;
|
||||||
@ -100,7 +101,7 @@ public class DeviceApiController {
|
|||||||
public DeferredResult<ResponseEntity> postDeviceAttributes(@PathVariable("deviceToken") String deviceToken,
|
public DeferredResult<ResponseEntity> postDeviceAttributes(@PathVariable("deviceToken") String deviceToken,
|
||||||
@RequestBody String json, HttpServletRequest request) {
|
@RequestBody String json, HttpServletRequest request) {
|
||||||
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
||||||
transportContext.getTransportService().process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
||||||
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
||||||
TransportService transportService = transportContext.getTransportService();
|
TransportService transportService = transportContext.getTransportService();
|
||||||
transportService.process(sessionInfo, JsonConverter.convertToAttributesProto(new JsonParser().parse(json)),
|
transportService.process(sessionInfo, JsonConverter.convertToAttributesProto(new JsonParser().parse(json)),
|
||||||
@ -114,7 +115,7 @@ public class DeviceApiController {
|
|||||||
public DeferredResult<ResponseEntity> postTelemetry(@PathVariable("deviceToken") String deviceToken,
|
public DeferredResult<ResponseEntity> postTelemetry(@PathVariable("deviceToken") String deviceToken,
|
||||||
@RequestBody String json, HttpServletRequest request) {
|
@RequestBody String json, HttpServletRequest request) {
|
||||||
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<ResponseEntity>();
|
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<ResponseEntity>();
|
||||||
transportContext.getTransportService().process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
||||||
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
||||||
TransportService transportService = transportContext.getTransportService();
|
TransportService transportService = transportContext.getTransportService();
|
||||||
transportService.process(sessionInfo, JsonConverter.convertToTelemetryProto(new JsonParser().parse(json)),
|
transportService.process(sessionInfo, JsonConverter.convertToTelemetryProto(new JsonParser().parse(json)),
|
||||||
@ -128,7 +129,7 @@ public class DeviceApiController {
|
|||||||
public DeferredResult<ResponseEntity> claimDevice(@PathVariable("deviceToken") String deviceToken,
|
public DeferredResult<ResponseEntity> claimDevice(@PathVariable("deviceToken") String deviceToken,
|
||||||
@RequestBody(required = false) String json, HttpServletRequest request) {
|
@RequestBody(required = false) String json, HttpServletRequest request) {
|
||||||
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
||||||
transportContext.getTransportService().process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
||||||
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
||||||
TransportService transportService = transportContext.getTransportService();
|
TransportService transportService = transportContext.getTransportService();
|
||||||
DeviceId deviceId = new DeviceId(new UUID(sessionInfo.getDeviceIdMSB(), sessionInfo.getDeviceIdLSB()));
|
DeviceId deviceId = new DeviceId(new UUID(sessionInfo.getDeviceIdMSB(), sessionInfo.getDeviceIdLSB()));
|
||||||
@ -143,7 +144,7 @@ public class DeviceApiController {
|
|||||||
@RequestParam(value = "timeout", required = false, defaultValue = "0") long timeout,
|
@RequestParam(value = "timeout", required = false, defaultValue = "0") long timeout,
|
||||||
HttpServletRequest httpRequest) {
|
HttpServletRequest httpRequest) {
|
||||||
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
||||||
transportContext.getTransportService().process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
||||||
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
||||||
TransportService transportService = transportContext.getTransportService();
|
TransportService transportService = transportContext.getTransportService();
|
||||||
transportService.registerSyncSession(sessionInfo, new HttpSessionListener(responseWriter),
|
transportService.registerSyncSession(sessionInfo, new HttpSessionListener(responseWriter),
|
||||||
@ -160,7 +161,7 @@ public class DeviceApiController {
|
|||||||
@PathVariable("requestId") Integer requestId,
|
@PathVariable("requestId") Integer requestId,
|
||||||
@RequestBody String json, HttpServletRequest request) {
|
@RequestBody String json, HttpServletRequest request) {
|
||||||
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<ResponseEntity>();
|
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<ResponseEntity>();
|
||||||
transportContext.getTransportService().process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
||||||
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
||||||
TransportService transportService = transportContext.getTransportService();
|
TransportService transportService = transportContext.getTransportService();
|
||||||
transportService.process(sessionInfo, ToDeviceRpcResponseMsg.newBuilder().setRequestId(requestId).setPayload(json).build(), new HttpOkCallback(responseWriter));
|
transportService.process(sessionInfo, ToDeviceRpcResponseMsg.newBuilder().setRequestId(requestId).setPayload(json).build(), new HttpOkCallback(responseWriter));
|
||||||
@ -172,7 +173,7 @@ public class DeviceApiController {
|
|||||||
public DeferredResult<ResponseEntity> postRpcRequest(@PathVariable("deviceToken") String deviceToken,
|
public DeferredResult<ResponseEntity> postRpcRequest(@PathVariable("deviceToken") String deviceToken,
|
||||||
@RequestBody String json, HttpServletRequest httpRequest) {
|
@RequestBody String json, HttpServletRequest httpRequest) {
|
||||||
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<ResponseEntity>();
|
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<ResponseEntity>();
|
||||||
transportContext.getTransportService().process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
||||||
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
||||||
JsonObject request = new JsonParser().parse(json).getAsJsonObject();
|
JsonObject request = new JsonParser().parse(json).getAsJsonObject();
|
||||||
TransportService transportService = transportContext.getTransportService();
|
TransportService transportService = transportContext.getTransportService();
|
||||||
@ -190,7 +191,7 @@ public class DeviceApiController {
|
|||||||
@RequestParam(value = "timeout", required = false, defaultValue = "0") long timeout,
|
@RequestParam(value = "timeout", required = false, defaultValue = "0") long timeout,
|
||||||
HttpServletRequest httpRequest) {
|
HttpServletRequest httpRequest) {
|
||||||
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>();
|
||||||
transportContext.getTransportService().process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(),
|
||||||
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> {
|
||||||
TransportService transportService = transportContext.getTransportService();
|
TransportService transportService = transportContext.getTransportService();
|
||||||
transportService.registerSyncSession(sessionInfo, new HttpSessionListener(responseWriter),
|
transportService.registerSyncSession(sessionInfo, new HttpSessionListener(responseWriter),
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
|||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.thingsboard.server.common.data.DeviceTransportType;
|
||||||
import org.thingsboard.server.common.msg.EncryptionUtil;
|
import org.thingsboard.server.common.msg.EncryptionUtil;
|
||||||
import org.thingsboard.server.common.transport.TransportService;
|
import org.thingsboard.server.common.transport.TransportService;
|
||||||
import org.thingsboard.server.common.transport.TransportServiceCallback;
|
import org.thingsboard.server.common.transport.TransportServiceCallback;
|
||||||
@ -157,7 +158,7 @@ public class MqttSslHandlerProvider {
|
|||||||
String sha3Hash = EncryptionUtil.getSha3Hash(strCert);
|
String sha3Hash = EncryptionUtil.getSha3Hash(strCert);
|
||||||
final String[] credentialsBodyHolder = new String[1];
|
final String[] credentialsBodyHolder = new String[1];
|
||||||
CountDownLatch latch = new CountDownLatch(1);
|
CountDownLatch latch = new CountDownLatch(1);
|
||||||
transportService.process(TransportProtos.ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(),
|
transportService.process(DeviceTransportType.MQTT, TransportProtos.ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(),
|
||||||
new TransportServiceCallback<ValidateDeviceCredentialsResponse>() {
|
new TransportServiceCallback<ValidateDeviceCredentialsResponse>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ValidateDeviceCredentialsResponse msg) {
|
public void onSuccess(ValidateDeviceCredentialsResponse msg) {
|
||||||
|
|||||||
@ -39,6 +39,7 @@ import io.netty.util.concurrent.Future;
|
|||||||
import io.netty.util.concurrent.GenericFutureListener;
|
import io.netty.util.concurrent.GenericFutureListener;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.thingsboard.server.common.data.DeviceTransportType;
|
||||||
import org.thingsboard.server.common.data.device.profile.MqttTopics;
|
import org.thingsboard.server.common.data.device.profile.MqttTopics;
|
||||||
import org.thingsboard.server.common.msg.EncryptionUtil;
|
import org.thingsboard.server.common.msg.EncryptionUtil;
|
||||||
import org.thingsboard.server.common.transport.SessionMsgListener;
|
import org.thingsboard.server.common.transport.SessionMsgListener;
|
||||||
@ -366,7 +367,7 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement
|
|||||||
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_REFUSED_BAD_USER_NAME_OR_PASSWORD));
|
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_REFUSED_BAD_USER_NAME_OR_PASSWORD));
|
||||||
ctx.close();
|
ctx.close();
|
||||||
} else {
|
} else {
|
||||||
transportService.process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(userName).build(),
|
transportService.process(DeviceTransportType.MQTT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(userName).build(),
|
||||||
new TransportServiceCallback<ValidateDeviceCredentialsResponse>() {
|
new TransportServiceCallback<ValidateDeviceCredentialsResponse>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ValidateDeviceCredentialsResponse msg) {
|
public void onSuccess(ValidateDeviceCredentialsResponse msg) {
|
||||||
@ -387,7 +388,7 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement
|
|||||||
try {
|
try {
|
||||||
String strCert = SslUtil.getX509CertificateString(cert);
|
String strCert = SslUtil.getX509CertificateString(cert);
|
||||||
String sha3Hash = EncryptionUtil.getSha3Hash(strCert);
|
String sha3Hash = EncryptionUtil.getSha3Hash(strCert);
|
||||||
transportService.process(ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(),
|
transportService.process(DeviceTransportType.MQTT, ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(),
|
||||||
new TransportServiceCallback<ValidateDeviceCredentialsResponse>() {
|
new TransportServiceCallback<ValidateDeviceCredentialsResponse>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ValidateDeviceCredentialsResponse msg) {
|
public void onSuccess(ValidateDeviceCredentialsResponse msg) {
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
package org.thingsboard.server.common.transport;
|
package org.thingsboard.server.common.transport;
|
||||||
|
|
||||||
import org.thingsboard.server.common.data.DeviceProfile;
|
import org.thingsboard.server.common.data.DeviceProfile;
|
||||||
|
import org.thingsboard.server.common.data.DeviceTransportType;
|
||||||
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
||||||
import org.thingsboard.server.common.transport.auth.GetOrCreateDeviceFromGatewayResponse;
|
import org.thingsboard.server.common.transport.auth.GetOrCreateDeviceFromGatewayResponse;
|
||||||
import org.thingsboard.server.common.transport.auth.ValidateDeviceCredentialsResponse;
|
import org.thingsboard.server.common.transport.auth.ValidateDeviceCredentialsResponse;
|
||||||
@ -45,10 +46,10 @@ public interface TransportService {
|
|||||||
|
|
||||||
GetTenantRoutingInfoResponseMsg getRoutingInfo(GetTenantRoutingInfoRequestMsg msg);
|
GetTenantRoutingInfoResponseMsg getRoutingInfo(GetTenantRoutingInfoRequestMsg msg);
|
||||||
|
|
||||||
void process(ValidateDeviceTokenRequestMsg msg,
|
void process(DeviceTransportType transportType, ValidateDeviceTokenRequestMsg msg,
|
||||||
TransportServiceCallback<ValidateDeviceCredentialsResponse> callback);
|
TransportServiceCallback<ValidateDeviceCredentialsResponse> callback);
|
||||||
|
|
||||||
void process(ValidateDeviceX509CertRequestMsg msg,
|
void process(DeviceTransportType transportType, ValidateDeviceX509CertRequestMsg msg,
|
||||||
TransportServiceCallback<ValidateDeviceCredentialsResponse> callback);
|
TransportServiceCallback<ValidateDeviceCredentialsResponse> callback);
|
||||||
|
|
||||||
void process(GetOrCreateDeviceFromGatewayRequestMsg msg,
|
void process(GetOrCreateDeviceFromGatewayRequestMsg msg,
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
||||||
import org.thingsboard.server.common.data.DeviceProfile;
|
import org.thingsboard.server.common.data.DeviceProfile;
|
||||||
|
import org.thingsboard.server.common.data.DeviceTransportType;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
||||||
@ -252,20 +253,20 @@ public class DefaultTransportService implements TransportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(TransportProtos.ValidateDeviceTokenRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
|
public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceTokenRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
|
||||||
log.trace("Processing msg: {}", msg);
|
log.trace("Processing msg: {}", msg);
|
||||||
TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateTokenRequestMsg(msg).build());
|
TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateTokenRequestMsg(msg).build());
|
||||||
doProcess(protoMsg, callback);
|
doProcess(transportType, protoMsg, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(TransportProtos.ValidateDeviceX509CertRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
|
public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceX509CertRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
|
||||||
log.trace("Processing msg: {}", msg);
|
log.trace("Processing msg: {}", msg);
|
||||||
TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateX509CertRequestMsg(msg).build());
|
TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateX509CertRequestMsg(msg).build());
|
||||||
doProcess(protoMsg, callback);
|
doProcess(transportType, protoMsg, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doProcess(TbProtoQueueMsg<TransportApiRequestMsg> protoMsg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
|
private void doProcess(DeviceTransportType transportType, TbProtoQueueMsg<TransportApiRequestMsg> protoMsg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
|
||||||
ListenableFuture<ValidateDeviceCredentialsResponse> response = Futures.transform(transportApiRequestTemplate.send(protoMsg), tmp -> {
|
ListenableFuture<ValidateDeviceCredentialsResponse> response = Futures.transform(transportApiRequestTemplate.send(protoMsg), tmp -> {
|
||||||
TransportProtos.ValidateDeviceCredentialsResponseMsg msg = tmp.getValue().getValidateTokenResponseMsg();
|
TransportProtos.ValidateDeviceCredentialsResponseMsg msg = tmp.getValue().getValidateTokenResponseMsg();
|
||||||
ValidateDeviceCredentialsResponse.ValidateDeviceCredentialsResponseBuilder result = ValidateDeviceCredentialsResponse.builder();
|
ValidateDeviceCredentialsResponse.ValidateDeviceCredentialsResponseBuilder result = ValidateDeviceCredentialsResponse.builder();
|
||||||
@ -283,6 +284,11 @@ public class DefaultTransportService implements TransportService {
|
|||||||
deviceProfiles.put(tdi.getDeviceProfileId(), profile);
|
deviceProfiles.put(tdi.getDeviceProfileId(), profile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (transportType != DeviceTransportType.DEFAULT
|
||||||
|
&& profile != null && profile.getTransportType() != DeviceTransportType.DEFAULT && profile.getTransportType() != transportType) {
|
||||||
|
log.debug("[{}] Device profile [{}] has different transport type: {}, expected: {}", tdi.getDeviceId(), tdi.getDeviceProfileId(), profile.getTransportType(), transportType);
|
||||||
|
throw new IllegalStateException("Device profile has different transport type: " + profile.getTransportType() + ". Expected: " + transportType);
|
||||||
|
}
|
||||||
result.deviceProfile(profile);
|
result.deviceProfile(profile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user