diff --git a/monitoring/src/main/conf/logback.xml b/monitoring/src/main/conf/logback.xml index 269f57b91c..de8b2c3cd5 100644 --- a/monitoring/src/main/conf/logback.xml +++ b/monitoring/src/main/conf/logback.xml @@ -29,7 +29,6 @@ - diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/CoapTransportMonitoringConfig.java b/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/CoapTransportMonitoringConfig.java index 000087e836..761ed227c2 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/CoapTransportMonitoringConfig.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/CoapTransportMonitoringConfig.java @@ -15,8 +15,6 @@ */ package org.thingsboard.monitoring.config.transport; -import lombok.Data; -import lombok.EqualsAndHashCode; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @@ -24,12 +22,8 @@ import org.springframework.stereotype.Component; @Component @ConditionalOnProperty(name = "monitoring.transports.coap.enabled", havingValue = "true") @ConfigurationProperties(prefix = "monitoring.transports.coap") -@Data -@EqualsAndHashCode(callSuper = true) public class CoapTransportMonitoringConfig extends TransportMonitoringConfig { - private TlsConfig tls; - @Override public TransportType getTransportType() { return TransportType.COAP; diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/CoapsTransportMonitoringConfig.java b/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/CoapsTransportMonitoringConfig.java index d4c6f85cf1..bffa541ec9 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/CoapsTransportMonitoringConfig.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/CoapsTransportMonitoringConfig.java @@ -28,6 +28,8 @@ import org.springframework.stereotype.Component; @EqualsAndHashCode(callSuper = true) public class CoapsTransportMonitoringConfig extends CoapTransportMonitoringConfig { + private TlsConfig tls; + @Override public TransportType getTransportType() { return TransportType.COAPS; diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/service/transport/impl/CoapTransportHealthChecker.java b/monitoring/src/main/java/org/thingsboard/monitoring/service/transport/impl/CoapTransportHealthChecker.java index fa12271a28..9ad2ab5b6e 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/service/transport/impl/CoapTransportHealthChecker.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/service/transport/impl/CoapTransportHealthChecker.java @@ -43,6 +43,7 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.thingsboard.monitoring.config.transport.CoapTransportMonitoringConfig; +import org.thingsboard.monitoring.config.transport.CoapsTransportMonitoringConfig; import org.thingsboard.monitoring.config.transport.TlsConfig; import org.thingsboard.monitoring.config.transport.TransportMonitoringTarget; import org.thingsboard.monitoring.config.transport.TransportType; @@ -51,13 +52,11 @@ import org.thingsboard.monitoring.util.SslUtil; import javax.security.auth.x500.X500Principal; import java.io.IOException; -import java.net.InetSocketAddress; -import java.util.Arrays; import java.security.KeyStore; import java.security.PrivateKey; import java.security.cert.Certificate; -import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -84,68 +83,68 @@ public class CoapTransportHealthChecker extends TransportHealthChecker 0) { - dtlsConfigBuilder.setAdvancedCertificateVerifier( - StaticNewAdvancedCertificateVerifier.builder() - .setTrustedCertificates(fetchedCerts) - .build()); - } else if (tlsConfig != null && tlsConfig.getTruststore().isPresent()) { - KeyStore trustStore = SslUtil.loadKeyStore(tlsConfig.getTruststore().get(), tlsConfig.getTruststorePassword()); - List trustCerts = new ArrayList<>(); - for (String alias : Collections.list(trustStore.aliases())) { - if (trustStore.isCertificateEntry(alias)) { - trustCerts.add(trustStore.getCertificate(alias)); - } + } + if (fetchedCerts != null && fetchedCerts.length > 0) { + dtlsConfigBuilder.setAdvancedCertificateVerifier( + StaticNewAdvancedCertificateVerifier.builder() + .setTrustedCertificates(fetchedCerts) + .build()); + } else if (tlsConfig != null && tlsConfig.getTruststore().isPresent()) { + KeyStore trustStore = SslUtil.loadKeyStore(tlsConfig.getTruststore().get(), tlsConfig.getTruststorePassword()); + List trustCerts = new ArrayList<>(); + for (String alias : Collections.list(trustStore.aliases())) { + if (trustStore.isCertificateEntry(alias)) { + trustCerts.add(trustStore.getCertificate(alias)); } - dtlsConfigBuilder.setAdvancedCertificateVerifier( - StaticNewAdvancedCertificateVerifier.builder() - .setTrustedCertificates(trustCerts.toArray(new Certificate[0])) - .build()); - } else { - dtlsConfigBuilder.setAdvancedCertificateVerifier( - StaticNewAdvancedCertificateVerifier.builder() - .setTrustAllCertificates() - .build()); } - coapClient.setEndpoint(new CoapEndpoint.Builder().setConnector(new DTLSConnector(dtlsConfigBuilder.build())).build()); + dtlsConfigBuilder.setAdvancedCertificateVerifier( + StaticNewAdvancedCertificateVerifier.builder() + .setTrustedCertificates(trustCerts.toArray(new Certificate[0])) + .build()); + } else { + dtlsConfigBuilder.setAdvancedCertificateVerifier( + StaticNewAdvancedCertificateVerifier.builder() + .setTrustAllCertificates() + .build()); } + coapClient.setEndpoint(new CoapEndpoint.Builder().setConnector(new DTLSConnector(dtlsConfigBuilder.build())).build()); + } coapClient.setTimeout((long) config.getRequestTimeoutMs()); log.debug("Connecting {} client to {}", getTransportType(), target.getBaseUrl()); } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/util/SslUtil.java b/monitoring/src/main/java/org/thingsboard/monitoring/util/SslUtil.java index 5bdbedae32..33117e4301 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/util/SslUtil.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/util/SslUtil.java @@ -28,7 +28,6 @@ import java.net.http.HttpResponse; import java.security.KeyStore; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; -import java.security.cert.X509Certificate; import java.time.Duration; import java.util.Collection;