From 6441d53d6ac9a54af614bc804ef1e78dc74ef82f Mon Sep 17 00:00:00 2001 From: Simon Bernard Date: Fri, 14 Apr 2023 18:01:04 +0200 Subject: [PATCH] Check requests received are CONFIRMABLE message --- .../transport/javacoap/resource/LwM2mCoapResource.java | 7 +++++++ .../transport/javacoap/resource/RegistrationResource.java | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/leshan-tl-javacoap-server/src/main/java/org/eclipse/leshan/transport/javacoap/resource/LwM2mCoapResource.java b/leshan-tl-javacoap-server/src/main/java/org/eclipse/leshan/transport/javacoap/resource/LwM2mCoapResource.java index d60101e940..4f29ed2738 100644 --- a/leshan-tl-javacoap-server/src/main/java/org/eclipse/leshan/transport/javacoap/resource/LwM2mCoapResource.java +++ b/leshan-tl-javacoap-server/src/main/java/org/eclipse/leshan/transport/javacoap/resource/LwM2mCoapResource.java @@ -33,6 +33,7 @@ import com.mbed.coap.packet.Code; import com.mbed.coap.packet.MediaTypes; import com.mbed.coap.packet.Opaque; +import com.mbed.coap.transport.TransportContext; import com.mbed.coap.utils.Service; public abstract class LwM2mCoapResource implements Service { @@ -48,6 +49,12 @@ public LwM2mCoapResource(String uri) { @Override public CompletableFuture apply(CoapRequest coapRequest) { try { + // The LWM2M transport spec v1.1.1 (section 6.4) all operation must be confirmable message except notify and + // execute which may be NON + if (coapRequest.getTransContext().get(TransportContext.NON_CONFIRMABLE)) { + return handleInvalidRequest(coapRequest, "CON CoAP type expected"); + } + return handleRequest(coapRequest); } catch (InvalidRequestException e) { return handleInvalidRequest(coapRequest, e.getMessage(), e); diff --git a/leshan-tl-javacoap-server/src/main/java/org/eclipse/leshan/transport/javacoap/resource/RegistrationResource.java b/leshan-tl-javacoap-server/src/main/java/org/eclipse/leshan/transport/javacoap/resource/RegistrationResource.java index 7350c622a4..cfe98b6572 100644 --- a/leshan-tl-javacoap-server/src/main/java/org/eclipse/leshan/transport/javacoap/resource/RegistrationResource.java +++ b/leshan-tl-javacoap-server/src/main/java/org/eclipse/leshan/transport/javacoap/resource/RegistrationResource.java @@ -82,13 +82,6 @@ public RegistrationResource(UplinkRequestReceiver receiver, LinkParser linkParse public CompletableFuture handlePOST(CoapRequest coapRequest) { LOG.trace("POST received : {}", coapRequest); - // The LWM2M spec (section 8.2) mandates the usage of confirmable messages - // TODO how to check is request is confirmable message ? -// if (!CON.equals(coapRequest.getType())) { -// handleInvalidRequest(coapRequest, "CON CoAP type expected"); -// return; -// } - // validate URI List uri = getUriPart(coapRequest); if (uri == null || uri.size() == 0 || !RESOURCE_NAME.equals(uri.get(0))) {