@Override public final String toString() { return String.format("ReadRequest [path=%s format=%s]", getPath(), format); }
@Override public void visit(ReadRequest request) { coapRequest = Request.newGet(); if (request.getContentFormat() != null) coapRequest.getOptions().setAccept(request.getContentFormat().getCode()); setTarget(coapRequest, request.getPath()); }
ReadRequest request = new ReadRequest(contentFormat, target); ReadResponse cResponse = server.send(registration, request, TIMEOUT); processDeviceResponse(req, resp, cResponse);
@Override public void visit(ReadRequest request) { o.add("kind", "read"); if (request.getContentFormat() != null) o.add("contentFormat", request.getContentFormat().getCode()); } });
@Override public String getIdentity(InetSocketAddress inetAddress) { if (inetAddress == null) return null; LwM2mObject securities = (LwM2mObject) securityEnabler.read(SYSTEM, new ReadRequest(SECURITY)).getContent(); for (LwM2mObjectInstance security : securities.getInstances().values()) { long securityMode = (long) security.getResource(SEC_SECURITY_MODE).getValue(); if (securityMode == SecurityMode.PSK.code) { try { URI uri = new URI((String) security.getResource(SEC_SERVER_URI).getValue()); if (inetAddress.equals(ServerInfo.getAddress(uri))) { byte[] pskIdentity = (byte[]) security.getResource(SEC_PUBKEY_IDENTITY).getValue(); return new String(pskIdentity); } } catch (URISyntaxException e) { LOG.error(String.format("Invalid URI %s", (String) security.getResource(SEC_SERVER_URI).getValue()), e); } } } return null; }
@Override public void visit(ReadRequest request) { o.add("kind", "read"); if (request.getContentFormat() != null) o.add("contentFormat", request.getContentFormat().getCode()); } });
@Override public byte[] getKey(String identity) { if (identity == null) return null; byte[] res = null; LwM2mObject securities = (LwM2mObject) securityEnabler.read(SYSTEM, new ReadRequest(SECURITY)).getContent(); for (LwM2mObjectInstance security : securities.getInstances().values()) { long securityMode = (long) security.getResource(SEC_SECURITY_MODE).getValue(); if (securityMode == SecurityMode.PSK.code) // psk { byte[] pskIdentity = (byte[]) security.getResource(SEC_PUBKEY_IDENTITY).getValue(); if (Arrays.equals(identity.getBytes(), pskIdentity)) { if (res == null) { // we continue to check if the is duplication res = (byte[]) security.getResource(SEC_SECRET_KEY).getValue(); } else { LOG.warn("There is several security object instance with the same psk identity : '{}'", identity); // we find 1 duplication and warn for it no need to continue. return res; } } } } return res; }
@Override public void visit(ReadRequest request) { coapRequest = Request.newGet(); setTarget(coapRequest, destination, request.getPath()); }
protected ObserveResponse doObserve(ServerIdentity identity, ObserveRequest request) { ReadResponse readResponse = this.read(identity, new ReadRequest(request.getPath().toString())); return new ObserveResponse(readResponse.getCode(), readResponse.getContent(), null, null, readResponse.getErrorMessage()); }
@Override protected ReadResponse doRead(ServerIdentity identity, ReadRequest request) { LwM2mPath path = request.getPath(); // Manage Object case if (path.isObject()) { List<LwM2mObjectInstance> lwM2mObjectInstances = new ArrayList<>(); for (Entry<Integer, LwM2mInstanceEnabler> entry : instances.entrySet()) { lwM2mObjectInstances.add(getLwM2mObjectInstance(entry.getKey(), entry.getValue(), identity, false)); } return ReadResponse.success(new LwM2mObject(getId(), lwM2mObjectInstances)); } // Manage Instance case LwM2mInstanceEnabler instance = instances.get(path.getObjectInstanceId()); if (instance == null) return ReadResponse.notFound(); if (path.getResourceId() == null) { return ReadResponse.success(getLwM2mObjectInstance(path.getObjectInstanceId(), instance, identity, false)); } // Manage Resource case return instance.read(path.getResourceId()); }
LwM2mObject securities = (LwM2mObject) securityEnabler.read(SYSTEM, new ReadRequest(SECURITY)).getContent(); LwM2mObject servers = (LwM2mObject) serverEnabler.read(SYSTEM, new ReadRequest(SERVER)).getContent();
@Override public void visit(final ReadRequest request) { switch (coapResponse.getCode()) { case CONTENT: lwM2mresponse = buildContentResponse(request.getPath(), coapResponse); break; case UNAUTHORIZED: case NOT_FOUND: case METHOD_NOT_ALLOWED: lwM2mresponse = new ValueResponse(fromCoapCode(coapResponse.getCode().value)); break; default: handleUnexpectedResponseCode(client.getEndpoint(), coapRequest, coapResponse); } }
return new ReadRequest(ContentFormat.fromCode(format), path);
@Override public synchronized ReadResponse read(ServerIdentity identity, ReadRequest request) { LwM2mPath path = request.getPath(); // read is not supported for bootstrap if (identity.isLwm2mBootstrapServer()) { return ReadResponse.methodNotAllowed(); } if (!identity.isSystem()) { // read the security object is forbidden if (id == LwM2mId.SECURITY) { return ReadResponse.notFound(); } // check if the resource is readable. if (path.isResource()) { ResourceModel resourceModel = objectModel.resources.get(path.getResourceId()); if (resourceModel != null && !resourceModel.operations.isReadable()) { return ReadResponse.methodNotAllowed(); } } } return doRead(identity, request); // TODO we could do a validation of response.getContent by comparing with the spec. }
return new ReadRequest(ContentFormat.fromCode(format), path);
@Override public void visit(ReadRequest request) { if (coapResponse.isError()) { // handle error response: lwM2mresponse = new ReadResponse(toLwM2mResponseCode(coapResponse.getCode()), null, coapResponse.getPayloadString(), coapResponse); } else if (coapResponse.getCode() == org.eclipse.californium.core.coap.CoAP.ResponseCode.CONTENT) { // handle success response: LwM2mNode content = decodeCoapResponse(request.getPath(), coapResponse, request, registration.getEndpoint()); lwM2mresponse = new ReadResponse(ResponseCode.CONTENT, content, null, coapResponse); } else { // handle unexpected response: handleUnexpectedResponseCode(registration.getEndpoint(), request, coapResponse); } }
ReadRequest readRequest = new ReadRequest(URI); ReadResponse response = nodeEnabler.read(identity, readRequest); if (response.getCode() == org.eclipse.leshan.ResponseCode.CONTENT) {