@Override public final void assertRegistration( final String tenantId, final String deviceId, final String gatewayId, final Handler<AsyncResult<RegistrationResult>> resultHandler) { assertRegistration(tenantId, deviceId, gatewayId, NoopSpan.INSTANCE, resultHandler); }
/** * {@inheritDoc} * * This default implementation simply returns an empty result with status code 501 (Not Implemented). * Subclasses should override this method in order to provide a reasonable implementation. */ @Override public void removeDevice(final String tenantId, final String deviceId, final Handler<AsyncResult<RegistrationResult>> resultHandler) { handleUnimplementedOperation(resultHandler); } }
@Override protected boolean passesFormalVerification(final ResourceIdentifier linkTarget, final Message msg) { return RegistrationMessageFilter.verify(linkTarget, msg); }
/** * Verifies that a request that does not contain a subject * does not pass the filter. */ @Test public void testVerifyDetectsMissingAction() { // GIVEN a registration message lacking a valid subject final Message msg = givenAMessageHavingProperties(MY_DEVICE, null); // WHEN receiving the message via a link final ResourceIdentifier linkTarget = getResourceIdentifier(MY_TENANT); // THEN message validation fails assertFalse(RegistrationMessageFilter.verify(linkTarget, msg)); }
@Override public void setConfig(final ServiceConfigProperties configuration) { setSpecificConfig(configuration); } };
@Override public void setConfig(final ServiceConfigProperties configuration) { setSpecificConfig(configuration); }
private static ResourceIdentifier getResourceIdentifier(final String tenant) { return getResourceIdentifier(tenant, null); }
private BaseRegistrationService<ServiceConfigProperties> newRegistrationService() { return newRegistrationService(this::getDevice); }
/** * Verifies that the helper asserts a minimum length of 32 bytes for shared secrets. */ @Test(expected = IllegalArgumentException.class) public void testForSigningRejectsShortSecret() { final String shortSecret = "01234567890123456"; // not 32 bytes long RegistrationAssertionHelperImpl.forSharedSecret(shortSecret, 10); }
/** * Verifies that a request with a tenant-level target address containing * all required properties passes the filter. */ @Test public void testVerifySucceedsForTenantOnlyLinkTarget() { // GIVEN a valid registration message for myDevice final Message msg = givenAMessageHavingProperties(MY_DEVICE, ACTION_GET); // WHEN receiving the message via a link with matching tenant-level target address final ResourceIdentifier linkTarget = getResourceIdentifier(MY_TENANT); // THEN message validation succeeds assertTrue(RegistrationMessageFilter.verify(linkTarget, msg)); }
@Override public final void assertRegistration( final String tenantId, final String deviceId, final Handler<AsyncResult<RegistrationResult>> resultHandler) { assertRegistration(tenantId, deviceId, NoopSpan.INSTANCE, resultHandler); }
@Override protected boolean passesFormalVerification(final ResourceIdentifier linkTarget, final Message msg) { return RegistrationMessageFilter.verify(linkTarget, msg); }
/** * {@inheritDoc} * * This default implementation simply returns an empty result with status code 501 (Not Implemented). * Subclasses should override this method in order to provide a reasonable implementation. */ @Override public void addDevice(final String tenantId, final String deviceId, final JsonObject otherKeys, final Handler<AsyncResult<RegistrationResult>> resultHandler) { handleUnimplementedOperation(resultHandler); }
/** * Verifies that a request that does not contain a device ID * does not pass the filter. */ @Test public void testVerifyDetectsMissingDeviceId() { // GIVEN a registration message lacking the device id final Message msg = givenAMessageHavingProperties(null, ACTION_GET); // WHEN receiving the message via a link final ResourceIdentifier linkTarget = getResourceIdentifier(MY_TENANT); // THEN message validation fails assertFalse(RegistrationMessageFilter.verify(linkTarget, msg)); }
/** * {@inheritDoc} * * This default implementation simply returns an empty result with status code 501 (Not Implemented). * Subclasses should override this method in order to provide a reasonable implementation. */ @Override public void updateDevice(final String tenantId, final String deviceId, final JsonObject otherKeys, final Handler<AsyncResult<RegistrationResult>> resultHandler) { handleUnimplementedOperation(resultHandler); }
/** * Verifies that a valid request that contains the same device ID as the link it * has been sent on passes the filter. */ @Test public void testVerifySucceedsForMatchingDevice() { // GIVEN a registration message for myDevice final Message msg = givenAMessageHavingProperties(MY_DEVICE, ACTION_GET); // WHEN receiving the message via a link with matching device-level address final ResourceIdentifier linkTarget = getResourceIdentifier(MY_TENANT, MY_DEVICE); // THEN message validation succeeds assertTrue(RegistrationMessageFilter.verify(linkTarget, msg)); }
/** * {@inheritDoc} * * This default implementation simply returns an empty result with status code 501 (Not Implemented). * Subclasses should override this method in order to provide a reasonable implementation. */ @Override public void removeDevice(final String tenantId, final String deviceId, final Handler<AsyncResult<RegistrationResult>> resultHandler) { handleUnimplementedOperation(resultHandler); } }
/** * Verifies that a request that contains another device ID than the link it has been * sent on does not pass the filter. */ @Test public void testVerifyDetectsDeviceIdMismatch() { // GIVEN a registration message with device id not matching the link target final Message msg = givenAMessageHavingProperties(MY_DEVICE + "_1", ACTION_GET); // WHEN receiving the message via a link final ResourceIdentifier linkTarget = getResourceIdentifier(MY_TENANT, MY_DEVICE); // THEN message validation fails assertFalse(RegistrationMessageFilter.verify(linkTarget, msg)); }
/** * {@inheritDoc} * * This default implementation simply returns an empty result with status code 501 (Not Implemented). * Subclasses should override this method in order to provide a reasonable implementation. */ @Override public void addDevice(final String tenantId, final String deviceId, final JsonObject otherKeys, final Handler<AsyncResult<RegistrationResult>> resultHandler) { handleUnimplementedOperation(resultHandler); }
/** * {@inheritDoc} * * This default implementation simply returns an empty result with status code 501 (Not Implemented). * Subclasses should override this method in order to provide a reasonable implementation. */ @Override public void updateDevice(final String tenantId, final String deviceId, final JsonObject otherKeys, final Handler<AsyncResult<RegistrationResult>> resultHandler) { handleUnimplementedOperation(resultHandler); }