Commit b34198f30c6f852eb8fca0e9a37cd0fe2538add7
Committed by
GitHub
1 parent
e3292e89
refactored CoAP Server component (#4497)
* refactored ce code base needed for coap-integration in pe * added anotation TbCoapServerComponent on CoapTransportService * license updated
Showing
7 changed files
with
46 additions
and
12 deletions
@@ -621,9 +621,9 @@ transport: | @@ -621,9 +621,9 @@ transport: | ||
621 | key_password: "${COAP_DTLS_KEY_PASSWORD:server_key_password}" | 621 | key_password: "${COAP_DTLS_KEY_PASSWORD:server_key_password}" |
622 | # Key alias | 622 | # Key alias |
623 | key_alias: "${COAP_DTLS_KEY_ALIAS:serveralias}" | 623 | key_alias: "${COAP_DTLS_KEY_ALIAS:serveralias}" |
624 | - # Skip certificate validity check for client certificates. | ||
625 | - skip_validity_check_for_client_cert: "${COAP_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" | ||
626 | x509: | 624 | x509: |
625 | + # Skip certificate validity check for client certificates. | ||
626 | + skip_validity_check_for_client_cert: "${TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" | ||
627 | dtls_session_inactivity_timeout: "${TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT:86400000}" | 627 | dtls_session_inactivity_timeout: "${TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT:86400000}" |
628 | dtls_session_report_timeout: "${TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT:1800000}" | 628 | dtls_session_report_timeout: "${TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT:1800000}" |
629 | # Local LwM2M transport parameters | 629 | # Local LwM2M transport parameters |
@@ -19,11 +19,10 @@ import lombok.Getter; | @@ -19,11 +19,10 @@ import lombok.Getter; | ||
19 | import lombok.extern.slf4j.Slf4j; | 19 | import lombok.extern.slf4j.Slf4j; |
20 | import org.springframework.beans.factory.annotation.Autowired; | 20 | import org.springframework.beans.factory.annotation.Autowired; |
21 | import org.springframework.beans.factory.annotation.Value; | 21 | import org.springframework.beans.factory.annotation.Value; |
22 | -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; | ||
23 | import org.springframework.stereotype.Component; | 22 | import org.springframework.stereotype.Component; |
24 | 23 | ||
25 | @Slf4j | 24 | @Slf4j |
26 | -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.coap.enabled}'=='true')") | 25 | +@TbCoapServerComponent |
27 | @Component | 26 | @Component |
28 | public class CoapServerContext { | 27 | public class CoapServerContext { |
29 | 28 |
@@ -23,7 +23,6 @@ import org.eclipse.californium.core.server.resources.Resource; | @@ -23,7 +23,6 @@ import org.eclipse.californium.core.server.resources.Resource; | ||
23 | import org.eclipse.californium.scandium.DTLSConnector; | 23 | import org.eclipse.californium.scandium.DTLSConnector; |
24 | import org.eclipse.californium.scandium.config.DtlsConnectorConfig; | 24 | import org.eclipse.californium.scandium.config.DtlsConnectorConfig; |
25 | import org.springframework.beans.factory.annotation.Autowired; | 25 | import org.springframework.beans.factory.annotation.Autowired; |
26 | -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; | ||
27 | import org.springframework.stereotype.Component; | 26 | import org.springframework.stereotype.Component; |
28 | 27 | ||
29 | import javax.annotation.PostConstruct; | 28 | import javax.annotation.PostConstruct; |
@@ -39,7 +38,7 @@ import java.util.concurrent.TimeUnit; | @@ -39,7 +38,7 @@ import java.util.concurrent.TimeUnit; | ||
39 | 38 | ||
40 | @Slf4j | 39 | @Slf4j |
41 | @Component | 40 | @Component |
42 | -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.coap.enabled}'=='true')") | 41 | +@TbCoapServerComponent |
43 | public class DefaultCoapServerService implements CoapServerService { | 42 | public class DefaultCoapServerService implements CoapServerService { |
44 | 43 | ||
45 | @Autowired | 44 | @Autowired |
@@ -39,7 +39,6 @@ import java.util.Collections; | @@ -39,7 +39,6 @@ import java.util.Collections; | ||
39 | import java.util.Optional; | 39 | import java.util.Optional; |
40 | 40 | ||
41 | @Slf4j | 41 | @Slf4j |
42 | -@ConditionalOnExpression("'${transport.coap.enabled}'=='true'") | ||
43 | @ConditionalOnProperty(prefix = "transport.coap.dtls", value = "enabled", havingValue = "true", matchIfMissing = false) | 42 | @ConditionalOnProperty(prefix = "transport.coap.dtls", value = "enabled", havingValue = "true", matchIfMissing = false) |
44 | @Component | 43 | @Component |
45 | public class TbCoapDtlsSettings { | 44 | public class TbCoapDtlsSettings { |
@@ -50,7 +49,7 @@ public class TbCoapDtlsSettings { | @@ -50,7 +49,7 @@ public class TbCoapDtlsSettings { | ||
50 | @Value("${transport.coap.dtls.bind_port}") | 49 | @Value("${transport.coap.dtls.bind_port}") |
51 | private Integer port; | 50 | private Integer port; |
52 | 51 | ||
53 | - @Value("${transport.coap.dtls.mode}") | 52 | + @Value("${transport.coap.dtls.mode:NO_AUTH}") |
54 | private String mode; | 53 | private String mode; |
55 | 54 | ||
56 | @Value("${transport.coap.dtls.key_store}") | 55 | @Value("${transport.coap.dtls.key_store}") |
@@ -65,13 +64,13 @@ public class TbCoapDtlsSettings { | @@ -65,13 +64,13 @@ public class TbCoapDtlsSettings { | ||
65 | @Value("${transport.coap.dtls.key_alias}") | 64 | @Value("${transport.coap.dtls.key_alias}") |
66 | private String keyAlias; | 65 | private String keyAlias; |
67 | 66 | ||
68 | - @Value("${transport.coap.dtls.skip_validity_check_for_client_cert}") | 67 | + @Value("${transport.coap.dtls.x509.skip_validity_check_for_client_cert:false}") |
69 | private boolean skipValidityCheckForClientCert; | 68 | private boolean skipValidityCheckForClientCert; |
70 | 69 | ||
71 | - @Value("${transport.coap.dtls.x509.dtls_session_inactivity_timeout}") | 70 | + @Value("${transport.coap.dtls.x509.dtls_session_inactivity_timeout:86400000}") |
72 | private long dtlsSessionInactivityTimeout; | 71 | private long dtlsSessionInactivityTimeout; |
73 | 72 | ||
74 | - @Value("${transport.coap.dtls.x509.dtls_session_report_timeout}") | 73 | + @Value("${transport.coap.dtls.x509.dtls_session_report_timeout:1800000}") |
75 | private long dtlsSessionReportTimeout; | 74 | private long dtlsSessionReportTimeout; |
76 | 75 | ||
77 | @Autowired | 76 | @Autowired |
common/coap-server/src/main/java/org/thingsboard/server/coapserver/TbCoapServerComponent.java
0 → 100644
1 | +/** | ||
2 | + * Copyright © 2016-2021 The Thingsboard Authors | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | +package org.thingsboard.server.coapserver; | ||
17 | + | ||
18 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; | ||
19 | + | ||
20 | +import java.lang.annotation.Retention; | ||
21 | +import java.lang.annotation.RetentionPolicy; | ||
22 | + | ||
23 | +@Retention(RetentionPolicy.RUNTIME) | ||
24 | +@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.coap.enabled}'=='true')") | ||
25 | +public @interface TbCoapServerComponent { | ||
26 | +} |
@@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; | @@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; | ||
23 | import org.springframework.stereotype.Service; | 23 | import org.springframework.stereotype.Service; |
24 | import org.thingsboard.server.common.data.TbTransportService; | 24 | import org.thingsboard.server.common.data.TbTransportService; |
25 | import org.thingsboard.server.coapserver.CoapServerService; | 25 | import org.thingsboard.server.coapserver.CoapServerService; |
26 | +import org.thingsboard.server.coapserver.TbCoapServerComponent; | ||
26 | import org.thingsboard.server.transport.coap.efento.CoapEfentoTransportResource; | 27 | import org.thingsboard.server.transport.coap.efento.CoapEfentoTransportResource; |
27 | 28 | ||
28 | import javax.annotation.PostConstruct; | 29 | import javax.annotation.PostConstruct; |
@@ -30,7 +31,7 @@ import javax.annotation.PreDestroy; | @@ -30,7 +31,7 @@ import javax.annotation.PreDestroy; | ||
30 | import java.net.UnknownHostException; | 31 | import java.net.UnknownHostException; |
31 | 32 | ||
32 | @Service("CoapTransportService") | 33 | @Service("CoapTransportService") |
33 | -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.coap.enabled}'=='true')") | 34 | +@TbCoapServerComponent |
34 | @Slf4j | 35 | @Slf4j |
35 | public class CoapTransportService implements TbTransportService { | 36 | public class CoapTransportService implements TbTransportService { |
36 | 37 |
@@ -22,6 +22,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; | @@ -22,6 +22,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; | ||
22 | import com.fasterxml.jackson.databind.node.ObjectNode; | 22 | import com.fasterxml.jackson.databind.node.ObjectNode; |
23 | 23 | ||
24 | import java.io.IOException; | 24 | import java.io.IOException; |
25 | +import java.util.Arrays; | ||
25 | 26 | ||
26 | /** | 27 | /** |
27 | * Created by Valerii Sosliuk on 5/12/2017. | 28 | * Created by Valerii Sosliuk on 5/12/2017. |
@@ -66,6 +67,15 @@ public class JacksonUtil { | @@ -66,6 +67,15 @@ public class JacksonUtil { | ||
66 | } | 67 | } |
67 | } | 68 | } |
68 | 69 | ||
70 | + public static JsonNode fromBytes(byte[] bytes) { | ||
71 | + try { | ||
72 | + return OBJECT_MAPPER.readTree(bytes); | ||
73 | + } catch (IOException e) { | ||
74 | + throw new IllegalArgumentException("The given byte[] value: " | ||
75 | + + Arrays.toString(bytes) + " cannot be transformed to Json object", e); | ||
76 | + } | ||
77 | + } | ||
78 | + | ||
69 | public static String toString(Object value) { | 79 | public static String toString(Object value) { |
70 | try { | 80 | try { |
71 | return value != null ? OBJECT_MAPPER.writeValueAsString(value) : null; | 81 | return value != null ? OBJECT_MAPPER.writeValueAsString(value) : null; |