coap. lem2m: add DTLS_RETRANSMISSION_TIMEOUT
This commit is contained in:
parent
5891a1df65
commit
bbcd2ed047
@ -710,6 +710,8 @@ transport:
|
|||||||
dtls:
|
dtls:
|
||||||
# Enable/disable DTLS 1.2 support
|
# Enable/disable DTLS 1.2 support
|
||||||
enabled: "${COAP_DTLS_ENABLED:false}"
|
enabled: "${COAP_DTLS_ENABLED:false}"
|
||||||
|
# RFC7925_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS = 9000
|
||||||
|
retransmission_timeout_in_sec: "${DTLS_RETRANSMISSION_TIMEOUT:9}"
|
||||||
# CoAP DTLS bind address
|
# CoAP DTLS bind address
|
||||||
bind_address: "${COAP_DTLS_BIND_ADDRESS:0.0.0.0}"
|
bind_address: "${COAP_DTLS_BIND_ADDRESS:0.0.0.0}"
|
||||||
# CoAP DTLS bind port
|
# CoAP DTLS bind port
|
||||||
|
|||||||
@ -39,6 +39,7 @@ import java.net.InetAddress;
|
|||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ConditionalOnProperty(prefix = "transport.coap.dtls", value = "enabled", havingValue = "true", matchIfMissing = false)
|
@ConditionalOnProperty(prefix = "transport.coap.dtls", value = "enabled", havingValue = "true", matchIfMissing = false)
|
||||||
@ -51,6 +52,9 @@ public class TbCoapDtlsSettings {
|
|||||||
@Value("${transport.coap.dtls.bind_port}")
|
@Value("${transport.coap.dtls.bind_port}")
|
||||||
private Integer port;
|
private Integer port;
|
||||||
|
|
||||||
|
@Value("${transport.coap.dtls.retransmission_timeout_in_sec}")
|
||||||
|
private Integer dtlsRetransmissionTimeoutInSec;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConfigurationProperties(prefix = "transport.coap.dtls.credentials")
|
@ConfigurationProperties(prefix = "transport.coap.dtls.credentials")
|
||||||
public SslCredentialsConfig coapDtlsCredentials() {
|
public SslCredentialsConfig coapDtlsCredentials() {
|
||||||
@ -84,6 +88,7 @@ public class TbCoapDtlsSettings {
|
|||||||
new SslContextUtil.Credentials(sslCredentials.getPrivateKey(), null, sslCredentials.getCertificateChain());
|
new SslContextUtil.Credentials(sslCredentials.getPrivateKey(), null, sslCredentials.getCertificateChain());
|
||||||
configBuilder.set(DtlsConfig.DTLS_ROLE, DtlsConfig.DtlsRole.SERVER_ONLY);
|
configBuilder.set(DtlsConfig.DTLS_ROLE, DtlsConfig.DtlsRole.SERVER_ONLY);
|
||||||
configBuilder.set(DtlsConfig.DTLS_CLIENT_AUTHENTICATION_MODE, CertificateAuthenticationMode.WANTED);
|
configBuilder.set(DtlsConfig.DTLS_CLIENT_AUTHENTICATION_MODE, CertificateAuthenticationMode.WANTED);
|
||||||
|
configBuilder.set(DtlsConfig.DTLS_RETRANSMISSION_TIMEOUT, dtlsRetransmissionTimeoutInSec, TimeUnit.SECONDS);
|
||||||
configBuilder.setAdvancedCertificateVerifier(
|
configBuilder.setAdvancedCertificateVerifier(
|
||||||
new TbCoapDtlsCertificateVerifier(
|
new TbCoapDtlsCertificateVerifier(
|
||||||
transportService,
|
transportService,
|
||||||
|
|||||||
@ -36,6 +36,7 @@ import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig;
|
|||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static org.eclipse.californium.scandium.config.DtlsConfig.DTLS_RECOMMENDED_CIPHER_SUITES_ONLY;
|
import static org.eclipse.californium.scandium.config.DtlsConfig.DTLS_RECOMMENDED_CIPHER_SUITES_ONLY;
|
||||||
import static org.eclipse.californium.scandium.config.DtlsConfig.DTLS_RECOMMENDED_CURVES_ONLY;
|
import static org.eclipse.californium.scandium.config.DtlsConfig.DTLS_RECOMMENDED_CURVES_ONLY;
|
||||||
@ -89,6 +90,7 @@ public class LwM2MTransportBootstrapService {
|
|||||||
DtlsConnectorConfig.Builder dtlsConfig = new DtlsConnectorConfig.Builder(getCoapConfig(bootstrapConfig.getPort(), bootstrapConfig.getSecurePort(), serverConfig));
|
DtlsConnectorConfig.Builder dtlsConfig = new DtlsConnectorConfig.Builder(getCoapConfig(bootstrapConfig.getPort(), bootstrapConfig.getSecurePort(), serverConfig));
|
||||||
|
|
||||||
dtlsConfig.set(DtlsConfig.DTLS_ROLE, DtlsConfig.DtlsRole.SERVER_ONLY);
|
dtlsConfig.set(DtlsConfig.DTLS_ROLE, DtlsConfig.DtlsRole.SERVER_ONLY);
|
||||||
|
dtlsConfig.set(DtlsConfig.DTLS_RETRANSMISSION_TIMEOUT, serverConfig.getDtlsRetransmissionTimeoutInSec(), TimeUnit.SECONDS);
|
||||||
dtlsConfig.set(DTLS_RECOMMENDED_CURVES_ONLY, serverConfig.isRecommendedSupportedGroups());
|
dtlsConfig.set(DTLS_RECOMMENDED_CURVES_ONLY, serverConfig.isRecommendedSupportedGroups());
|
||||||
dtlsConfig.set(DTLS_RECOMMENDED_CIPHER_SUITES_ONLY, serverConfig.isRecommendedCiphers());
|
dtlsConfig.set(DTLS_RECOMMENDED_CIPHER_SUITES_ONLY, serverConfig.isRecommendedCiphers());
|
||||||
|
|
||||||
|
|||||||
@ -37,6 +37,10 @@ import java.util.List;
|
|||||||
@ConfigurationProperties(prefix = "transport.lwm2m")
|
@ConfigurationProperties(prefix = "transport.lwm2m")
|
||||||
public class LwM2MTransportServerConfig implements LwM2MSecureServerConfig {
|
public class LwM2MTransportServerConfig implements LwM2MSecureServerConfig {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Value("${transport.coap.dtls.retransmission_timeout_in_sec}")
|
||||||
|
private Integer dtlsRetransmissionTimeoutInSec;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${transport.lwm2m.timeout:}")
|
@Value("${transport.lwm2m.timeout:}")
|
||||||
private Long timeout;
|
private Long timeout;
|
||||||
|
|||||||
@ -40,6 +40,7 @@ import org.thingsboard.server.transport.lwm2m.utils.LwM2mValueConverterImpl;
|
|||||||
|
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static org.eclipse.californium.scandium.config.DtlsConfig.DTLS_RECOMMENDED_CIPHER_SUITES_ONLY;
|
import static org.eclipse.californium.scandium.config.DtlsConfig.DTLS_RECOMMENDED_CIPHER_SUITES_ONLY;
|
||||||
import static org.eclipse.californium.scandium.config.DtlsConfig.DTLS_RECOMMENDED_CURVES_ONLY;
|
import static org.eclipse.californium.scandium.config.DtlsConfig.DTLS_RECOMMENDED_CURVES_ONLY;
|
||||||
@ -132,6 +133,7 @@ public class DefaultLwM2mTransportService implements LwM2MTransportService {
|
|||||||
DtlsConnectorConfig.Builder dtlsConfig = new DtlsConnectorConfig.Builder(getCoapConfig(config.getPort(), config.getSecurePort(), config));
|
DtlsConnectorConfig.Builder dtlsConfig = new DtlsConnectorConfig.Builder(getCoapConfig(config.getPort(), config.getSecurePort(), config));
|
||||||
|
|
||||||
dtlsConfig.set(DtlsConfig.DTLS_ROLE, DtlsConfig.DtlsRole.SERVER_ONLY);
|
dtlsConfig.set(DtlsConfig.DTLS_ROLE, DtlsConfig.DtlsRole.SERVER_ONLY);
|
||||||
|
dtlsConfig.set(DtlsConfig.DTLS_RETRANSMISSION_TIMEOUT, config.getDtlsRetransmissionTimeoutInSec(), TimeUnit.SECONDS);
|
||||||
dtlsConfig.set(DTLS_RECOMMENDED_CURVES_ONLY, config.isRecommendedSupportedGroups());
|
dtlsConfig.set(DTLS_RECOMMENDED_CURVES_ONLY, config.isRecommendedSupportedGroups());
|
||||||
dtlsConfig.set(DTLS_RECOMMENDED_CIPHER_SUITES_ONLY, config.isRecommendedCiphers());
|
dtlsConfig.set(DTLS_RECOMMENDED_CIPHER_SUITES_ONLY, config.isRecommendedCiphers());
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user