Merge with develop 2.5.5
This commit is contained in:
commit
7b3d903cff
@ -125,7 +125,7 @@ class DefaultTbContext implements TbContext {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enqueue(TbMsg tbMsg, String queueName, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
public void enqueue(TbMsg tbMsg, String queueName, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
||||||
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, queueName, getTenantId(), tbMsg.getOriginator());
|
TopicPartitionInfo tpi = resolvePartition(tbMsg, queueName);
|
||||||
enqueue(tpi, tbMsg, onFailure, onSuccess);
|
enqueue(tpi, tbMsg, onFailure, onSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,46 +142,54 @@ class DefaultTbContext implements TbContext {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enqueueForTellFailure(TbMsg tbMsg, String failureMessage) {
|
public void enqueueForTellFailure(TbMsg tbMsg, String failureMessage) {
|
||||||
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator());
|
TopicPartitionInfo tpi = resolvePartition(tbMsg);
|
||||||
enqueueForTellNext(tpi, tbMsg, Collections.singleton(TbRelationTypes.FAILURE), failureMessage, null, null);
|
enqueueForTellNext(tpi, tbMsg, Collections.singleton(TbRelationTypes.FAILURE), failureMessage, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enqueueForTellNext(TbMsg tbMsg, String relationType) {
|
public void enqueueForTellNext(TbMsg tbMsg, String relationType) {
|
||||||
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator());
|
TopicPartitionInfo tpi = resolvePartition(tbMsg);
|
||||||
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, null, null);
|
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enqueueForTellNext(TbMsg tbMsg, Set<String> relationTypes) {
|
public void enqueueForTellNext(TbMsg tbMsg, Set<String> relationTypes) {
|
||||||
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator());
|
TopicPartitionInfo tpi = resolvePartition(tbMsg);
|
||||||
enqueueForTellNext(tpi, tbMsg, relationTypes, null, null, null);
|
enqueueForTellNext(tpi, tbMsg, relationTypes, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enqueueForTellNext(TbMsg tbMsg, String relationType, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
public void enqueueForTellNext(TbMsg tbMsg, String relationType, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
||||||
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator());
|
TopicPartitionInfo tpi = resolvePartition(tbMsg);
|
||||||
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, onSuccess, onFailure);
|
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, onSuccess, onFailure);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enqueueForTellNext(TbMsg tbMsg, Set<String> relationTypes, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
public void enqueueForTellNext(TbMsg tbMsg, Set<String> relationTypes, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
||||||
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, getTenantId(), tbMsg.getOriginator());
|
TopicPartitionInfo tpi = resolvePartition(tbMsg);
|
||||||
enqueueForTellNext(tpi, tbMsg, relationTypes, null, onSuccess, onFailure);
|
enqueueForTellNext(tpi, tbMsg, relationTypes, null, onSuccess, onFailure);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enqueueForTellNext(TbMsg tbMsg, String queueName, String relationType, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
public void enqueueForTellNext(TbMsg tbMsg, String queueName, String relationType, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
||||||
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, queueName, getTenantId(), tbMsg.getOriginator());
|
TopicPartitionInfo tpi = resolvePartition(tbMsg, queueName);
|
||||||
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, onSuccess, onFailure);
|
enqueueForTellNext(tpi, tbMsg, Collections.singleton(relationType), null, onSuccess, onFailure);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enqueueForTellNext(TbMsg tbMsg, String queueName, Set<String> relationTypes, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
public void enqueueForTellNext(TbMsg tbMsg, String queueName, Set<String> relationTypes, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
||||||
TopicPartitionInfo tpi = mainCtx.resolve(ServiceType.TB_RULE_ENGINE, queueName, getTenantId(), tbMsg.getOriginator());
|
TopicPartitionInfo tpi = resolvePartition(tbMsg, queueName);
|
||||||
enqueueForTellNext(tpi, tbMsg, relationTypes, null, onSuccess, onFailure);
|
enqueueForTellNext(tpi, tbMsg, relationTypes, null, onSuccess, onFailure);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private TopicPartitionInfo resolvePartition(TbMsg tbMsg, String queueName) {
|
||||||
|
return mainCtx.resolve(ServiceType.TB_RULE_ENGINE, queueName, getTenantId(), tbMsg.getOriginator());
|
||||||
|
}
|
||||||
|
|
||||||
|
private TopicPartitionInfo resolvePartition(TbMsg tbMsg) {
|
||||||
|
return resolvePartition(tbMsg, tbMsg.getQueueName());
|
||||||
|
}
|
||||||
|
|
||||||
private void enqueueForTellNext(TopicPartitionInfo tpi, TbMsg source, Set<String> relationTypes, String failureMessage, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
private void enqueueForTellNext(TopicPartitionInfo tpi, TbMsg source, Set<String> relationTypes, String failureMessage, Runnable onSuccess, Consumer<Throwable> onFailure) {
|
||||||
RuleChainId ruleChainId = nodeCtx.getSelf().getRuleChainId();
|
RuleChainId ruleChainId = nodeCtx.getSelf().getRuleChainId();
|
||||||
RuleNodeId ruleNodeId = nodeCtx.getSelf().getId();
|
RuleNodeId ruleNodeId = nodeCtx.getSelf().getId();
|
||||||
|
|||||||
@ -605,6 +605,8 @@ transport:
|
|||||||
key_password: "${MQTT_SSL_KEY_PASSWORD:server_key_password}"
|
key_password: "${MQTT_SSL_KEY_PASSWORD:server_key_password}"
|
||||||
# Type of the key store
|
# Type of the key store
|
||||||
key_store_type: "${MQTT_SSL_KEY_STORE_TYPE:JKS}"
|
key_store_type: "${MQTT_SSL_KEY_STORE_TYPE:JKS}"
|
||||||
|
# Skip certificate validity check for client certificates.
|
||||||
|
skip_validity_check_for_client_cert: "${MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}"
|
||||||
# Local CoAP transport parameters
|
# Local CoAP transport parameters
|
||||||
coap:
|
coap:
|
||||||
# Enable/disable coap transport protocol.
|
# Enable/disable coap transport protocol.
|
||||||
|
|||||||
@ -51,6 +51,10 @@ public class MqttTransportContext extends TransportContext {
|
|||||||
@Value("${transport.mqtt.netty.max_payload_size}")
|
@Value("${transport.mqtt.netty.max_payload_size}")
|
||||||
private Integer maxPayloadSize;
|
private Integer maxPayloadSize;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Value("${transport.mqtt.netty.skip_validity_check_for_client_cert:false}")
|
||||||
|
private boolean skipValidityCheckForClientCert;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
private SslHandler sslHandler;
|
private SslHandler sslHandler;
|
||||||
|
|||||||
@ -387,7 +387,9 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement
|
|||||||
|
|
||||||
private void processX509CertConnect(ChannelHandlerContext ctx, X509Certificate cert) {
|
private void processX509CertConnect(ChannelHandlerContext ctx, X509Certificate cert) {
|
||||||
try {
|
try {
|
||||||
cert.checkValidity(new Date());
|
if(!context.isSkipValidityCheckForClientCert()){
|
||||||
|
cert.checkValidity();
|
||||||
|
}
|
||||||
String strCert = SslUtil.getX509CertificateString(cert);
|
String strCert = SslUtil.getX509CertificateString(cert);
|
||||||
String sha3Hash = EncryptionUtil.getSha3Hash(strCert);
|
String sha3Hash = EncryptionUtil.getSha3Hash(strCert);
|
||||||
transportService.process(DeviceTransportType.MQTT, ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(),
|
transportService.process(DeviceTransportType.MQTT, ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(),
|
||||||
|
|||||||
@ -66,6 +66,8 @@ transport:
|
|||||||
key_password: "${MQTT_SSL_KEY_PASSWORD:server_key_password}"
|
key_password: "${MQTT_SSL_KEY_PASSWORD:server_key_password}"
|
||||||
# Type of the key store
|
# Type of the key store
|
||||||
key_store_type: "${MQTT_SSL_KEY_STORE_TYPE:JKS}"
|
key_store_type: "${MQTT_SSL_KEY_STORE_TYPE:JKS}"
|
||||||
|
# Skip certificate validity check for client certificates.
|
||||||
|
skip_validity_check_for_client_cert: "${MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}"
|
||||||
sessions:
|
sessions:
|
||||||
inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}"
|
inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}"
|
||||||
report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:30000}"
|
report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:30000}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user