Renaming of the lwm2m configuration properties
This commit is contained in:
parent
ee55c0bf85
commit
690c97dd4d
@ -647,42 +647,40 @@ transport:
|
|||||||
bind_address: "${LWM2M_BIND_ADDRESS:0.0.0.0}"
|
bind_address: "${LWM2M_BIND_ADDRESS:0.0.0.0}"
|
||||||
bind_port: "${LWM2M_BIND_PORT:5685}"
|
bind_port: "${LWM2M_BIND_PORT:5685}"
|
||||||
security:
|
security:
|
||||||
bind_address: "${LWM2M_BIND_ADDRESS_SECURITY:0.0.0.0}"
|
bind_address: "${LWM2M_SECURITY_BIND_ADDRESS:0.0.0.0}"
|
||||||
bind_port: "${LWM2M_BIND_PORT_SECURITY:5686}"
|
bind_port: "${LWM2M_SECURITY_BIND_PORT:5686}"
|
||||||
# Only Certificate_x509:
|
# Only Certificate_x509:
|
||||||
alias: "${LWM2M_KEYSTORE_SERVER_ALIAS:server}"
|
key_alias: "${LWM2M_SERVER_KEY_ALIAS:server}"
|
||||||
password: "${LWM2M_KEYSTORE_SERVER_PASSWORD:server_ks_password}"
|
key_password: "${LWM2M_SERVER_KEY_PASSWORD:server_ks_password}"
|
||||||
skip_validity_check_for_client_cert: "${TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}"
|
skip_validity_check_for_client_cert: "${TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}"
|
||||||
bootstrap:
|
bootstrap:
|
||||||
enable: "${LWM2M_ENABLED_BS:true}"
|
enable: "${LWM2M_ENABLED_BS:true}"
|
||||||
id: "${LWM2M_SERVER_ID_BS:111}"
|
id: "${LWM2M_SERVER_ID_BS:111}"
|
||||||
bind_address: "${LWM2M_BIND_ADDRESS_BS:0.0.0.0}"
|
bind_address: "${LWM2M_BS_BIND_ADDRESS:0.0.0.0}"
|
||||||
bind_port: "${LWM2M_BIND_PORT_BS:5687}"
|
bind_port: "${LWM2M_BS_BIND_PORT:5687}"
|
||||||
security:
|
security:
|
||||||
bind_address: "${LWM2M_BIND_ADDRESS_SECURITY_BS:0.0.0.0}"
|
bind_address: "${LWM2M_BS_SECURITY_BIND_ADDRESS:0.0.0.0}"
|
||||||
bind_port: "${LWM2M_BIND_PORT_SECURITY_BS:5688}"
|
bind_port: "${LWM2M_BS_SECURITY_BIND_PORT:5688}"
|
||||||
# Only Certificate_x509:
|
# Only Certificate_x509:
|
||||||
alias: "${LWM2M_KEYSTORE_BS_ALIAS:bootstrap}"
|
key_alias: "${LWM2M_BS_KEY_ALIAS:bootstrap}"
|
||||||
password: "${LWM2M_KEYSTORE_BS_PASSWORD:server_ks_password}"
|
key_password: "${LWM2M_BS_KEY_PASSWORD:server_ks_password}"
|
||||||
security:
|
security:
|
||||||
# Certificate_x509:
|
# Certificate_x509:
|
||||||
# To get helps about files format and how to generate it, see: https://github.com/eclipse/leshan/wiki/Credential-files-format
|
# To get helps about files format and how to generate it, see: https://github.com/eclipse/leshan/wiki/Credential-files-format
|
||||||
# Create new X509 Certificates: common/transport/lwm2m/src/main/resources/credentials/shell/lwM2M_credentials.sh
|
# Create new X509 Certificates: common/transport/lwm2m/src/main/resources/credentials/shell/lwM2M_credentials.sh
|
||||||
key_store_type: "${LWM2M_KEYSTORE_TYPE:JKS}"
|
key_store_type: "${LWM2M_KEYSTORE_TYPE:JKS}"
|
||||||
# key_store_path_file: "${KEY_STORE_PATH_FILE:/common/transport/lwm2m/src/main/resources/credentials/serverKeyStore.jks"
|
# key_store_path_file: "${KEY_STORE_PATH_FILE:/common/transport/lwm2m/src/main/resources/credentials/serverKeyStore.jks"
|
||||||
key_store: "${LWM2M_KEY_STORE:lwm2mserver.jks}"
|
key_store: "${LWM2M_KEYSTORE:lwm2mserver.jks}"
|
||||||
key_store_password: "${LWM2M_KEY_STORE_PASSWORD:server_ks_password}"
|
key_store_password: "${LWM2M_KEYSTORE_PASSWORD:server_ks_password}"
|
||||||
root_alias: "${LWM2M_SERVER_ROOT_CA:rootca}"
|
root_alias: "${LWM2M_SERVER_ROOT_CA_ALIAS:rootca}"
|
||||||
enable_gen_new_key_psk_rpk: "${ENABLE_GEN_NEW_KEY_PSK_RPK:false}"
|
recommended_ciphers: "${LWM2M_RECOMMENDED_CIPHERS:false}"
|
||||||
|
recommended_supported_groups: "${LWM2M_RECOMMENDED_SUPPORTED_GROUPS:true}"
|
||||||
timeout: "${LWM2M_TIMEOUT:120000}"
|
timeout: "${LWM2M_TIMEOUT:120000}"
|
||||||
recommended_ciphers: "${LWM2M_RECOMMENDED_CIPHERS:false}"
|
|
||||||
recommended_supported_groups: "${LWM2M_RECOMMENDED_SUPPORTED_GROUPS:true}"
|
|
||||||
uplink_pool_size: "${LWM2M_UPLINK_POOL_SIZE:10}"
|
uplink_pool_size: "${LWM2M_UPLINK_POOL_SIZE:10}"
|
||||||
downlink_pool_size: "${LWM2M_DOWNLINK_POOL_SIZE:10}"
|
downlink_pool_size: "${LWM2M_DOWNLINK_POOL_SIZE:10}"
|
||||||
ota_pool_size: "${LWM2M_OTA_POOL_SIZE:10}"
|
ota_pool_size: "${LWM2M_OTA_POOL_SIZE:10}"
|
||||||
registration_store_pool_size: "${LWM2M_REGISTRATION_STORE_POOL_SIZE:100}"
|
|
||||||
clean_period_in_sec: "${LWM2M_CLEAN_PERIOD_IN_SEC:2}"
|
clean_period_in_sec: "${LWM2M_CLEAN_PERIOD_IN_SEC:2}"
|
||||||
log_max_length: "${LWM2M_LOG_MAX_LENGTH:100}"
|
log_max_length: "${LWM2M_LOG_MAX_LENGTH:1024}"
|
||||||
# Use redis for Security and Registration stores
|
# Use redis for Security and Registration stores
|
||||||
redis.enabled: "${LWM2M_REDIS_ENABLED:false}"
|
redis.enabled: "${LWM2M_REDIS_ENABLED:false}"
|
||||||
snmp:
|
snmp:
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
transport.lwm2m.security.key_store=lwm2m/credentials/serverKeyStore.jks
|
transport.lwm2m.security.key_store=lwm2m/credentials/serverKeyStore.jks
|
||||||
transport.lwm2m.security.key_store_password=server
|
transport.lwm2m.security.key_store_password=server
|
||||||
edges.enabled=true
|
edges.enabled=true
|
||||||
transport.lwm2m.server.security.alias=server
|
transport.lwm2m.server.security.key_alias=server
|
||||||
transport.lwm2m.server.security.password=server
|
transport.lwm2m.server.security.key_password=server
|
||||||
transport.lwm2m.bootstrap.security.alias=server
|
transport.lwm2m.bootstrap.security.key_alias=server
|
||||||
transport.lwm2m.bootstrap.security.password=server
|
transport.lwm2m.bootstrap.security.key_password=server
|
||||||
@ -18,48 +18,26 @@ package org.thingsboard.server.transport.lwm2m.bootstrap;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.eclipse.californium.scandium.config.DtlsConnectorConfig;
|
import org.eclipse.californium.scandium.config.DtlsConnectorConfig;
|
||||||
import org.eclipse.leshan.core.util.Hex;
|
|
||||||
import org.eclipse.leshan.server.bootstrap.BootstrapSessionManager;
|
import org.eclipse.leshan.server.bootstrap.BootstrapSessionManager;
|
||||||
import org.eclipse.leshan.server.californium.bootstrap.LeshanBootstrapServer;
|
import org.eclipse.leshan.server.californium.bootstrap.LeshanBootstrapServer;
|
||||||
import org.eclipse.leshan.server.californium.bootstrap.LeshanBootstrapServerBuilder;
|
import org.eclipse.leshan.server.californium.bootstrap.LeshanBootstrapServerBuilder;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.thingsboard.server.common.data.StringUtils;
|
|
||||||
import org.thingsboard.server.transport.lwm2m.bootstrap.secure.LwM2MBootstrapSecurityStore;
|
import org.thingsboard.server.transport.lwm2m.bootstrap.secure.LwM2MBootstrapSecurityStore;
|
||||||
import org.thingsboard.server.transport.lwm2m.bootstrap.secure.LwM2MInMemoryBootstrapConfigStore;
|
import org.thingsboard.server.transport.lwm2m.bootstrap.secure.LwM2MInMemoryBootstrapConfigStore;
|
||||||
import org.thingsboard.server.transport.lwm2m.bootstrap.secure.LwM2mDefaultBootstrapSessionManager;
|
import org.thingsboard.server.transport.lwm2m.bootstrap.secure.LwM2mDefaultBootstrapSessionManager;
|
||||||
import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportBootstrapConfig;
|
import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportBootstrapConfig;
|
||||||
import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig;
|
import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig;
|
||||||
import org.thingsboard.server.transport.lwm2m.secure.LWM2MGenerationPSkRPkECC;
|
|
||||||
import org.thingsboard.server.transport.lwm2m.server.DefaultLwM2mTransportService;
|
import org.thingsboard.server.transport.lwm2m.server.DefaultLwM2mTransportService;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
import java.math.BigInteger;
|
|
||||||
import java.security.AlgorithmParameters;
|
|
||||||
import java.security.KeyFactory;
|
|
||||||
import java.security.KeyStore;
|
import java.security.KeyStore;
|
||||||
import java.security.KeyStoreException;
|
import java.security.KeyStoreException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.security.PrivateKey;
|
import java.security.PrivateKey;
|
||||||
import java.security.PublicKey;
|
import java.security.PublicKey;
|
||||||
import java.security.cert.CertificateEncodingException;
|
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
import java.security.interfaces.ECPublicKey;
|
|
||||||
import java.security.spec.ECGenParameterSpec;
|
|
||||||
import java.security.spec.ECParameterSpec;
|
|
||||||
import java.security.spec.ECPoint;
|
|
||||||
import java.security.spec.ECPublicKeySpec;
|
|
||||||
import java.security.spec.InvalidKeySpecException;
|
|
||||||
import java.security.spec.InvalidParameterSpecException;
|
|
||||||
import java.security.spec.KeySpec;
|
|
||||||
import java.security.spec.PKCS8EncodedKeySpec;
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import static org.eclipse.californium.scandium.dtls.cipher.CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256;
|
|
||||||
import static org.eclipse.californium.scandium.dtls.cipher.CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8;
|
|
||||||
import static org.eclipse.californium.scandium.dtls.cipher.CipherSuite.TLS_PSK_WITH_AES_128_CBC_SHA256;
|
|
||||||
import static org.eclipse.californium.scandium.dtls.cipher.CipherSuite.TLS_PSK_WITH_AES_128_CCM_8;
|
|
||||||
import static org.thingsboard.server.transport.lwm2m.server.LwM2mNetworkConfig.getCoapConfig;
|
import static org.thingsboard.server.transport.lwm2m.server.LwM2mNetworkConfig.getCoapConfig;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -78,9 +56,6 @@ public class LwM2MTransportBootstrapService {
|
|||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
if (serverConfig.getEnableGenNewKeyPskRpk()) {
|
|
||||||
new LWM2MGenerationPSkRPkECC();
|
|
||||||
}
|
|
||||||
log.info("Starting LwM2M transport bootstrap server...");
|
log.info("Starting LwM2M transport bootstrap server...");
|
||||||
this.server = getLhBootstrapServer();
|
this.server = getLhBootstrapServer();
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|||||||
@ -47,11 +47,11 @@ public class LwM2MTransportBootstrapConfig implements LwM2MSecureServerConfig {
|
|||||||
private Integer securePort;
|
private Integer securePort;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${transport.lwm2m.bootstrap.security.alias:}")
|
@Value("${transport.lwm2m.bootstrap.security.key_alias:}")
|
||||||
private String certificateAlias;
|
private String certificateAlias;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${transport.lwm2m.bootstrap.security.password:}")
|
@Value("${transport.lwm2m.bootstrap.security.key_password:}")
|
||||||
private String certificatePassword;
|
private String certificatePassword;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,11 +53,11 @@ public class LwM2MTransportServerConfig implements LwM2MSecureServerConfig {
|
|||||||
private long sessionReportTimeout;
|
private long sessionReportTimeout;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${transport.lwm2m.recommended_ciphers:}")
|
@Value("${transport.lwm2m.security.recommended_ciphers:}")
|
||||||
private boolean recommendedCiphers;
|
private boolean recommendedCiphers;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${transport.lwm2m.recommended_supported_groups:}")
|
@Value("${transport.lwm2m.security.recommended_supported_groups:}")
|
||||||
private boolean recommendedSupportedGroups;
|
private boolean recommendedSupportedGroups;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@ -96,10 +96,6 @@ public class LwM2MTransportServerConfig implements LwM2MSecureServerConfig {
|
|||||||
@Value("${transport.lwm2m.security.root_alias:}")
|
@Value("${transport.lwm2m.security.root_alias:}")
|
||||||
private String rootCertificateAlias;
|
private String rootCertificateAlias;
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Value("${transport.lwm2m.security.enable_gen_new_key_psk_rpk:}")
|
|
||||||
private Boolean enableGenNewKeyPskRpk;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${transport.lwm2m.server.id:}")
|
@Value("${transport.lwm2m.server.id:}")
|
||||||
private Integer id;
|
private Integer id;
|
||||||
@ -121,11 +117,11 @@ public class LwM2MTransportServerConfig implements LwM2MSecureServerConfig {
|
|||||||
private Integer securePort;
|
private Integer securePort;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${transport.lwm2m.server.security.alias:}")
|
@Value("${transport.lwm2m.server.security.key_alias:}")
|
||||||
private String certificateAlias;
|
private String certificateAlias;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${transport.lwm2m.server.security.password:}")
|
@Value("${transport.lwm2m.server.security.key_password:}")
|
||||||
private String certificatePassword;
|
private String certificatePassword;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
|
|||||||
@ -1,110 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright © 2016-2021 The Thingsboard Authors
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.thingsboard.server.transport.lwm2m.secure;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.eclipse.leshan.core.util.Hex;
|
|
||||||
|
|
||||||
import java.security.InvalidAlgorithmParameterException;
|
|
||||||
import java.security.KeyPair;
|
|
||||||
import java.security.KeyPairGenerator;
|
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.security.NoSuchProviderException;
|
|
||||||
import java.security.PrivateKey;
|
|
||||||
import java.security.PublicKey;
|
|
||||||
import java.security.SecureRandom;
|
|
||||||
import java.security.interfaces.ECPublicKey;
|
|
||||||
import java.security.spec.ECGenParameterSpec;
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
public class LWM2MGenerationPSkRPkECC {
|
|
||||||
|
|
||||||
public LWM2MGenerationPSkRPkECC() {
|
|
||||||
generationPSkKey();
|
|
||||||
generationRPKECCKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void generationPSkKey() {
|
|
||||||
/* PSK */
|
|
||||||
int lenPSkKey = 32;
|
|
||||||
/* Start PSK
|
|
||||||
Clients and Servers MUST support PSK keys of up to 64 bytes in length, as required by [RFC7925]
|
|
||||||
SecureRandom object must be unpredictable, and all SecureRandom output sequences must be cryptographically strong, as described in [RFC4086]
|
|
||||||
*/
|
|
||||||
SecureRandom randomPSK = new SecureRandom();
|
|
||||||
byte[] bytesPSK = new byte[lenPSkKey];
|
|
||||||
randomPSK.nextBytes(bytesPSK);
|
|
||||||
log.info("\nCreating new PSK: \n for the next start PSK -> security key: [{}]", Hex.encodeHexString(bytesPSK));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void generationRPKECCKey() {
|
|
||||||
/* RPK */
|
|
||||||
String algorithm = "EC";
|
|
||||||
String provider = "SunEC";
|
|
||||||
String nameParameterSpec = "secp256r1";
|
|
||||||
|
|
||||||
/* Start RPK
|
|
||||||
Elliptic Curve parameters : [secp256r1 [NIST P-256, X9.62 prime256v1] (1.2.840.10045.3.1.7)]
|
|
||||||
*/
|
|
||||||
KeyPairGenerator kpg = null;
|
|
||||||
try {
|
|
||||||
kpg = KeyPairGenerator.getInstance(algorithm, provider);
|
|
||||||
} catch (NoSuchAlgorithmException | NoSuchProviderException e) {
|
|
||||||
log.error("", e);
|
|
||||||
}
|
|
||||||
ECGenParameterSpec ecsp = new ECGenParameterSpec(nameParameterSpec);
|
|
||||||
try {
|
|
||||||
kpg.initialize(ecsp);
|
|
||||||
} catch (InvalidAlgorithmParameterException e) {
|
|
||||||
log.error("", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
KeyPair kp = kpg.genKeyPair();
|
|
||||||
PrivateKey privKey = kp.getPrivate();
|
|
||||||
PublicKey pubKey = kp.getPublic();
|
|
||||||
|
|
||||||
if (pubKey instanceof ECPublicKey) {
|
|
||||||
ECPublicKey ecPublicKey = (ECPublicKey) pubKey;
|
|
||||||
/* Get x coordinate */
|
|
||||||
byte[] x = ecPublicKey.getW().getAffineX().toByteArray();
|
|
||||||
if (x[0] == 0)
|
|
||||||
x = Arrays.copyOfRange(x, 1, x.length);
|
|
||||||
|
|
||||||
/* Get Y coordinate */
|
|
||||||
byte[] y = ecPublicKey.getW().getAffineY().toByteArray();
|
|
||||||
if (y[0] == 0)
|
|
||||||
y = Arrays.copyOfRange(y, 1, y.length);
|
|
||||||
|
|
||||||
/* Get Curves params */
|
|
||||||
String privHex = Hex.encodeHexString(privKey.getEncoded());
|
|
||||||
log.info("\nCreating new RPK for the next start... \n" +
|
|
||||||
" Public Key (Hex): [{}]\n" +
|
|
||||||
" Private Key (Hex): [{}]" +
|
|
||||||
" public_x : [{}] \n" +
|
|
||||||
" public_y : [{}] \n" +
|
|
||||||
" private_encode : [{}] \n" +
|
|
||||||
" Elliptic Curve parameters : [{}] \n",
|
|
||||||
Hex.encodeHexString(pubKey.getEncoded()),
|
|
||||||
privHex,
|
|
||||||
Hex.encodeHexString(x),
|
|
||||||
Hex.encodeHexString(y),
|
|
||||||
privHex,
|
|
||||||
ecPublicKey.getParams().toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -29,7 +29,6 @@ import org.springframework.stereotype.Component;
|
|||||||
import org.thingsboard.server.cache.ota.OtaPackageDataCache;
|
import org.thingsboard.server.cache.ota.OtaPackageDataCache;
|
||||||
import org.thingsboard.server.queue.util.TbLwM2mTransportComponent;
|
import org.thingsboard.server.queue.util.TbLwM2mTransportComponent;
|
||||||
import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig;
|
import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig;
|
||||||
import org.thingsboard.server.transport.lwm2m.secure.LWM2MGenerationPSkRPkECC;
|
|
||||||
import org.thingsboard.server.transport.lwm2m.secure.TbLwM2MAuthorizer;
|
import org.thingsboard.server.transport.lwm2m.secure.TbLwM2MAuthorizer;
|
||||||
import org.thingsboard.server.transport.lwm2m.secure.TbLwM2MDtlsCertificateVerifier;
|
import org.thingsboard.server.transport.lwm2m.secure.TbLwM2MDtlsCertificateVerifier;
|
||||||
import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClientContext;
|
import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClientContext;
|
||||||
@ -74,9 +73,6 @@ public class DefaultLwM2mTransportService implements LwM2MTransportService {
|
|||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
if (config.getEnableGenNewKeyPskRpk()) {
|
|
||||||
new LWM2MGenerationPSkRPkECC();
|
|
||||||
}
|
|
||||||
this.server = getLhServer();
|
this.server = getLhServer();
|
||||||
/*
|
/*
|
||||||
* Add a resource to the server.
|
* Add a resource to the server.
|
||||||
|
|||||||
@ -106,41 +106,40 @@ transport:
|
|||||||
bind_address: "${LWM2M_BIND_ADDRESS:0.0.0.0}"
|
bind_address: "${LWM2M_BIND_ADDRESS:0.0.0.0}"
|
||||||
bind_port: "${LWM2M_BIND_PORT:5685}"
|
bind_port: "${LWM2M_BIND_PORT:5685}"
|
||||||
security:
|
security:
|
||||||
bind_address: "${LWM2M_BIND_ADDRESS_SECURITY:0.0.0.0}"
|
bind_address: "${LWM2M_SECURITY_BIND_ADDRESS:0.0.0.0}"
|
||||||
bind_port: "${LWM2M_BIND_PORT_SECURITY:5686}"
|
bind_port: "${LWM2M_SECURITY_BIND_PORT:5686}"
|
||||||
# Only Certificate_x509:
|
# Only Certificate_x509:
|
||||||
alias: "${LWM2M_KEYSTORE_SERVER_ALIAS:server}"
|
key_alias: "${LWM2M_SERVER_KEY_ALIAS:server}"
|
||||||
password: "${LWM2M_KEYSTORE_SERVER_PASSWORD:server_ks_password}"
|
key_password: "${LWM2M_SERVER_KEY_PASSWORD:server_ks_password}"
|
||||||
skip_validity_check_for_client_cert: "${TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}"
|
skip_validity_check_for_client_cert: "${TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}"
|
||||||
bootstrap:
|
bootstrap:
|
||||||
enable: "${LWM2M_ENABLED_BS:true}"
|
enable: "${LWM2M_ENABLED_BS:true}"
|
||||||
id: "${LWM2M_SERVER_ID_BS:111}"
|
id: "${LWM2M_SERVER_ID_BS:111}"
|
||||||
bind_address: "${LWM2M_BIND_ADDRESS_BS:0.0.0.0}"
|
bind_address: "${LWM2M_BS_BIND_ADDRESS:0.0.0.0}"
|
||||||
bind_port: "${LWM2M_BIND_PORT_BS:5687}"
|
bind_port: "${LWM2M_BS_BIND_PORT:5687}"
|
||||||
security:
|
security:
|
||||||
bind_address: "${LWM2M_BIND_ADDRESS_SECURITY_BS:0.0.0.0}"
|
bind_address: "${LWM2M_BS_SECURITY_BIND_ADDRESS:0.0.0.0}"
|
||||||
bind_port: "${LWM2M_BIND_PORT_SECURITY_BS:5688}"
|
bind_port: "${LWM2M_BS_SECURITY_BIND_PORT:5688}"
|
||||||
# Only Certificate_x509:
|
# Only Certificate_x509:
|
||||||
alias: "${LWM2M_KEYSTORE_BS_ALIAS:bootstrap}"
|
key_alias: "${LWM2M_BS_KEY_ALIAS:bootstrap}"
|
||||||
password: "${LWM2M_KEYSTORE_BS_PASSWORD:server_ks_password}"
|
key_password: "${LWM2M_BS_KEY_PASSWORD:server_ks_password}"
|
||||||
security:
|
security:
|
||||||
# Certificate_x509:
|
# Certificate_x509:
|
||||||
# To get helps about files format and how to generate it, see: https://github.com/eclipse/leshan/wiki/Credential-files-format
|
# To get helps about files format and how to generate it, see: https://github.com/eclipse/leshan/wiki/Credential-files-format
|
||||||
# Create new X509 Certificates: common/transport/lwm2m/src/main/resources/credentials/shell/lwM2M_credentials.sh
|
# Create new X509 Certificates: common/transport/lwm2m/src/main/resources/credentials/shell/lwM2M_credentials.sh
|
||||||
key_store_type: "${LWM2M_KEYSTORE_TYPE:JKS}"
|
key_store_type: "${LWM2M_KEYSTORE_TYPE:JKS}"
|
||||||
# key_store_path_file: "${KEY_STORE_PATH_FILE:/common/transport/lwm2m/src/main/resources/credentials/serverKeyStore.jks"
|
# key_store_path_file: "${KEY_STORE_PATH_FILE:/common/transport/lwm2m/src/main/resources/credentials/serverKeyStore.jks"
|
||||||
key_store: "${LWM2M_KEY_STORE:lwm2mserver.jks}"
|
key_store: "${LWM2M_KEYSTORE:lwm2mserver.jks}"
|
||||||
key_store_password: "${LWM2M_KEY_STORE_PASSWORD:server_ks_password}"
|
key_store_password: "${LWM2M_KEYSTORE_PASSWORD:server_ks_password}"
|
||||||
root_alias: "${LWM2M_SERVER_ROOT_CA:rootca}"
|
root_alias: "${LWM2M_SERVER_ROOT_CA_ALIAS:rootca}"
|
||||||
enable_gen_new_key_psk_rpk: "${ENABLE_GEN_NEW_KEY_PSK_RPK:false}"
|
recommended_ciphers: "${LWM2M_RECOMMENDED_CIPHERS:false}"
|
||||||
|
recommended_supported_groups: "${LWM2M_RECOMMENDED_SUPPORTED_GROUPS:true}"
|
||||||
timeout: "${LWM2M_TIMEOUT:120000}"
|
timeout: "${LWM2M_TIMEOUT:120000}"
|
||||||
recommended_ciphers: "${LWM2M_RECOMMENDED_CIPHERS:false}"
|
|
||||||
recommended_supported_groups: "${LWM2M_RECOMMENDED_SUPPORTED_GROUPS:true}"
|
|
||||||
uplink_pool_size: "${LWM2M_UPLINK_POOL_SIZE:10}"
|
uplink_pool_size: "${LWM2M_UPLINK_POOL_SIZE:10}"
|
||||||
downlink_pool_size: "${LWM2M_DOWNLINK_POOL_SIZE:10}"
|
downlink_pool_size: "${LWM2M_DOWNLINK_POOL_SIZE:10}"
|
||||||
ota_pool_size: "${LWM2M_OTA_POOL_SIZE:10}"
|
ota_pool_size: "${LWM2M_OTA_POOL_SIZE:10}"
|
||||||
clean_period_in_sec: "${LWM2M_CLEAN_PERIOD_IN_SEC:2}"
|
clean_period_in_sec: "${LWM2M_CLEAN_PERIOD_IN_SEC:2}"
|
||||||
log_max_length: "${LWM2M_LOG_MAX_LENGTH:100}"
|
log_max_length: "${LWM2M_LOG_MAX_LENGTH:1024}"
|
||||||
# Use redis for Security and Registration stores
|
# Use redis for Security and Registration stores
|
||||||
redis.enabled: "${LWM2M_REDIS_ENABLED:false}"
|
redis.enabled: "${LWM2M_REDIS_ENABLED:false}"
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user