public String getUri() { StringBuilder uri = new StringBuilder(); if (identity.isSecure()) uri.append("coaps://"); else uri.append("coap://"); uri.append(identity.getPeerAddress().getAddress().getHostAddress()); uri.append(":"); uri.append(identity.getPeerAddress().getPort()); return uri.toString(); } }
/** * Return true if any of the securityInfos is valid for the given endpoint and client identity. * * @see #checkSecurityInfo(String, Identity, SecurityInfo) * * @param endpoint * @param clientIdentity * @param securityInfos * */ public boolean checkSecurityInfos(String endpoint, Identity clientIdentity, List<SecurityInfo> securityInfos) { // if this is a secure end-point, we must check that the registering client is using the right identity. if (clientIdentity.isSecure()) { if (securityInfos == null || securityInfos.isEmpty()) { LOG.debug("Client '{}' without security info try to connect through the secure endpoint", endpoint); return false; } else { for (SecurityInfo securityInfo : securityInfos) { if (checkSecurityInfo(endpoint, clientIdentity, securityInfo)) { return true; } } return false; } } else if (securityInfos != null && !securityInfos.isEmpty()) { LOG.debug("Client '{}' must connect using DTLS", endpoint); return false; } return true; }
if (clientIdentity.isSecure()) { if (securityInfo == null) {
@Override public JsonElement serialize(Registration src, Type typeOfSrc, JsonSerializationContext context) { JsonObject element = new JsonObject(); element.addProperty("endpoint", src.getEndpoint()); element.addProperty("registrationId", src.getId()); element.add("registrationDate", context.serialize(src.getRegistrationDate())); element.add("lastUpdate", context.serialize(src.getLastUpdate())); element.addProperty("address", src.getAddress().getHostAddress() + ":" + src.getPort()); element.addProperty("smsNumber", src.getSmsNumber()); element.addProperty("lwM2mVersion", src.getLwM2mVersion()); element.addProperty("lifetime", src.getLifeTimeInSec()); element.addProperty("bindingMode", src.getBindingMode().toString()); element.add("rootPath", context.serialize(src.getRootPath())); element.add("objectLinks", context.serialize(src.getSortedObjectLinks())); element.add("secure", context.serialize(src.getIdentity().isSecure())); element.add("additionalRegistrationAttributes", context.serialize(src.getAdditionalRegistrationAttributes())); if (src.usesQueueMode()) { element.add("sleeping", context.serialize(!presenceService.isClientAwake(src))); } return element; } }
@Override public T buildResponse(Response coapResponse) { // TODO we need to fix that by removing the Client dependency from LwM2MResponseBuilder or by creating a // LwM2mBootstrapResponseBuilder Registration registration = new Registration.Builder("fakeregistrationid", endpointName, destination, destination.isSecure() ? secureEndpoint.getAddress() : nonSecureEndpoint.getAddress()).build(); // Build LwM2m response LwM2mResponseBuilder<T> lwm2mResponseBuilder = new LwM2mResponseBuilder<>(coapRequest, coapResponse, registration, model, null, decoder); request.accept(lwm2mResponseBuilder); return lwm2mResponseBuilder.getResponse(); } };
@Override public T buildResponse(Response coapResponse) { // TODO we need to fix that by removing the Client dependency from LwM2MResponseBuilder or by creating a // LwM2mBootstrapResponseBuilder Registration registration = new Registration.Builder("fakeregistrationid", endpointName, destination, destination.isSecure() ? secureEndpoint.getAddress() : nonSecureEndpoint.getAddress()).build(); // Build LwM2m response LwM2mResponseBuilder<T> lwm2mResponseBuilder = new LwM2mResponseBuilder<>(coapRequest, coapResponse, registration, model, null, decoder); request.accept(lwm2mResponseBuilder); return lwm2mResponseBuilder.getResponse(); } };
if (destination.isSecure()) secureEndpoint.sendRequest(coapRequest); else
if (destination.isSecure()) secureEndpoint.sendRequest(coapRequest); else
try { DeregisterResponse response = sender.send(server.getIdentity().getPeerAddress(), server.getIdentity().isSecure(), new DeregisterRequest(registrationID), DEREGISTRATION_TIMEOUT); if (response == null) { registrationID = null;