/** * Creates a new instance of an HTTP protocol handler for Hono's <em>Credentials</em> API. * * @return The handler. */ @Bean @Scope("prototype") public CredentialsHttpEndpoint credentialsHttpEndpoint() { return new CredentialsHttpEndpoint(vertx()); }
/** * Gets credentials by auth-id and type. * * @param ctx The context to retrieve the query parameters from. */ private void getCredentials(final RoutingContext ctx) { // mandatory params final String tenantId = getTenantParam(ctx); final String authId = getAuthIdParam(ctx); final String type = getTypeParam(ctx); logger.debug("getCredentials [tenant: {}, auth-id: {}, type: {}]", tenantId, authId, type); final JsonObject requestMsg = CredentialsConstants.getServiceGetRequestAsJson( tenantId, null, authId, type); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_OK, null)); }
private void getCredentialsForDevice(final RoutingContext ctx) { // mandatory params final String tenantId = getTenantParam(ctx); final String deviceId = getDeviceIdParam(ctx); logger.debug("getCredentialsForDevice [tenant: {}, device-id: {}]]", tenantId, deviceId); final JsonObject requestMsg = CredentialsConstants.getServiceGetRequestAsJson( tenantId, deviceId, null, CredentialsConstants.SPECIFIER_WILDCARD); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_OK, null)); }
private void addCredentials(final RoutingContext ctx) { final JsonObject payload = (JsonObject) ctx.get(KEY_REQUEST_BODY); final String deviceId = payload.getString(CredentialsConstants.FIELD_PAYLOAD_DEVICE_ID); final String authId = payload.getString(CredentialsConstants.FIELD_AUTH_ID); final String type = payload.getString(CredentialsConstants.FIELD_TYPE); final String tenantId = getTenantParam(ctx); logger.debug("adding credentials [tenant: {}, device-id: {}, auth-id: {}, type: {}]", tenantId, deviceId, authId, type); final JsonObject requestMsg = EventBusMessage.forOperation(CredentialsConstants.CredentialsAction.add.toString()) .setTenant(tenantId) .setDeviceId(deviceId) .setJsonPayload(payload) .toJson(); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_CREATED, httpServerResponse -> httpServerResponse.putHeader(HttpHeaders.LOCATION, String.format("/%s/%s/%s/%s", CredentialsConstants.CREDENTIALS_ENDPOINT, tenantId, authId, type)) ) ); }
private void addCredentials(final RoutingContext ctx) { final JsonObject payload = (JsonObject) ctx.get(KEY_REQUEST_BODY); final String deviceId = payload.getString(CredentialsConstants.FIELD_PAYLOAD_DEVICE_ID); final String authId = payload.getString(CredentialsConstants.FIELD_AUTH_ID); final String type = payload.getString(CredentialsConstants.FIELD_TYPE); final String tenantId = getTenantParam(ctx); logger.debug("adding credentials [tenant: {}, device-id: {}, auth-id: {}, type: {}]", tenantId, deviceId, authId, type); final JsonObject requestMsg = EventBusMessage.forOperation(CredentialsConstants.CredentialsAction.add.toString()) .setTenant(tenantId) .setDeviceId(deviceId) .setJsonPayload(payload) .toJson(); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_CREATED, httpServerResponse -> httpServerResponse.putHeader(HttpHeaders.LOCATION, String.format("/%s/%s/%s/%s", CredentialsConstants.CREDENTIALS_ENDPOINT, tenantId, authId, type)) ) ); }
/** * Gets credentials by auth-id and type. * * @param ctx The context to retrieve the query parameters from. */ private void getCredentials(final RoutingContext ctx) { // mandatory params final String tenantId = getTenantParam(ctx); final String authId = getAuthIdParam(ctx); final String type = getTypeParam(ctx); logger.debug("getCredentials [tenant: {}, auth-id: {}, type: {}]", tenantId, authId, type); final JsonObject requestMsg = CredentialsConstants.getServiceGetRequestAsJson( tenantId, null, authId, type); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_OK, null)); }
private void getCredentialsForDevice(final RoutingContext ctx) { // mandatory params final String tenantId = getTenantParam(ctx); final String deviceId = getDeviceIdParam(ctx); logger.debug("getCredentialsForDevice [tenant: {}, device-id: {}]]", tenantId, deviceId); final JsonObject requestMsg = CredentialsConstants.getServiceGetRequestAsJson( tenantId, deviceId, null, CredentialsConstants.SPECIFIER_WILDCARD); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_OK, null)); }
/** * Creates a new instance of an HTTP protocol handler for Hono's <em>Credentials</em> API. * * @return The handler. */ @Bean @Scope("prototype") public CredentialsHttpEndpoint credentialsHttpEndpoint() { return new CredentialsHttpEndpoint(vertx()); }
private void removeCredentials(final RoutingContext ctx) { final String tenantId = getTenantParam(ctx); final String type = getTypeParam(ctx); final String authId = getAuthIdParam(ctx); logger.debug("removeCredentials [tenant: {}, type: {}, authId: {}]", tenantId, type, authId); final JsonObject payload = new JsonObject(); payload.put(CredentialsConstants.FIELD_TYPE, type); payload.put(CredentialsConstants.FIELD_AUTH_ID, authId); final JsonObject requestMsg = EventBusMessage.forOperation(CredentialsConstants.CredentialsAction.remove.toString()) .setTenant(tenantId) .setJsonPayload(payload) .toJson(); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_NO_CONTENT, null)); }
private void removeCredentialsForDevice(final RoutingContext ctx) { final String tenantId = getTenantParam(ctx); final String deviceId = getDeviceIdParam(ctx); logger.debug("removeCredentialsForDevice: [tenant: {}, device-id: {}]", tenantId, deviceId); final JsonObject payload = new JsonObject(); payload.put(CredentialsConstants.FIELD_PAYLOAD_DEVICE_ID, deviceId); payload.put(CredentialsConstants.FIELD_TYPE, CredentialsConstants.SPECIFIER_WILDCARD); final JsonObject requestMsg = EventBusMessage.forOperation(CredentialsConstants.CredentialsAction.remove.toString()) .setTenant(tenantId) .setDeviceId(deviceId) .setJsonPayload(payload) .toJson(); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_NO_CONTENT, null)); }
private void removeCredentials(final RoutingContext ctx) { final String tenantId = getTenantParam(ctx); final String type = getTypeParam(ctx); final String authId = getAuthIdParam(ctx); logger.debug("removeCredentials [tenant: {}, type: {}, authId: {}]", tenantId, type, authId); final JsonObject payload = new JsonObject(); payload.put(CredentialsConstants.FIELD_TYPE, type); payload.put(CredentialsConstants.FIELD_AUTH_ID, authId); final JsonObject requestMsg = EventBusMessage.forOperation(CredentialsConstants.CredentialsAction.remove.toString()) .setTenant(tenantId) .setJsonPayload(payload) .toJson(); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_NO_CONTENT, null)); }
private void removeCredentialsForDevice(final RoutingContext ctx) { final String tenantId = getTenantParam(ctx); final String deviceId = getDeviceIdParam(ctx); logger.debug("removeCredentialsForDevice: [tenant: {}, device-id: {}]", tenantId, deviceId); final JsonObject payload = new JsonObject(); payload.put(CredentialsConstants.FIELD_PAYLOAD_DEVICE_ID, deviceId); payload.put(CredentialsConstants.FIELD_TYPE, CredentialsConstants.SPECIFIER_WILDCARD); final JsonObject requestMsg = EventBusMessage.forOperation(CredentialsConstants.CredentialsAction.remove.toString()) .setTenant(tenantId) .setDeviceId(deviceId) .setJsonPayload(payload) .toJson(); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx, status -> status == HttpURLConnection.HTTP_NO_CONTENT, null)); }
private void updateCredentials(final RoutingContext ctx) { final JsonObject payload = (JsonObject) ctx.get(KEY_REQUEST_BODY); final String deviceId = payload.getString(CredentialsConstants.FIELD_PAYLOAD_DEVICE_ID); final String authId = payload.getString(CredentialsConstants.FIELD_AUTH_ID); final String type = payload.getString(CredentialsConstants.FIELD_TYPE); final String tenantId = getTenantParam(ctx); final String authIdFromUri = getAuthIdParam(ctx); final String typeFromUri = getTypeParam(ctx); // auth-id and type from URI must match payload if (!authIdFromUri.equals(authId)) { ctx.fail(new ClientErrorException(HttpURLConnection.HTTP_BAD_REQUEST, "Non-matching authentication identifier")); } else if (!typeFromUri.equals(type)) { ctx.fail(new ClientErrorException(HttpURLConnection.HTTP_BAD_REQUEST, "Non-matching credentials type")); } else { logger.debug("updating credentials [tenant: {}, device-id: {}, auth-id: {}, type: {}]", tenantId, deviceId, authId, type); final JsonObject requestMsg = EventBusMessage.forOperation(CredentialsConstants.CredentialsAction.update.toString()) .setTenant(tenantId) .setDeviceId(deviceId) .setJsonPayload(payload) .toJson(); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx)); } }
private void updateCredentials(final RoutingContext ctx) { final JsonObject payload = (JsonObject) ctx.get(KEY_REQUEST_BODY); final String deviceId = payload.getString(CredentialsConstants.FIELD_PAYLOAD_DEVICE_ID); final String authId = payload.getString(CredentialsConstants.FIELD_AUTH_ID); final String type = payload.getString(CredentialsConstants.FIELD_TYPE); final String tenantId = getTenantParam(ctx); final String authIdFromUri = getAuthIdParam(ctx); final String typeFromUri = getTypeParam(ctx); // auth-id and type from URI must match payload if (!authIdFromUri.equals(authId)) { ctx.response().setStatusMessage("Non-matching authentication identifier"); ctx.fail(HttpURLConnection.HTTP_BAD_REQUEST); } else if (!typeFromUri.equals(type)) { ctx.response().setStatusMessage("Non-matching credentials type"); ctx.fail(HttpURLConnection.HTTP_BAD_REQUEST); } else { logger.debug("updating credentials [tenant: {}, device-id: {}, auth-id: {}, type: {}]", tenantId, deviceId, authId, type); final JsonObject requestMsg = EventBusMessage.forOperation(CredentialsConstants.CredentialsAction.update.toString()) .setTenant(tenantId) .setDeviceId(deviceId) .setJsonPayload(payload) .toJson(); sendAction(ctx, requestMsg, getDefaultResponseHandler(ctx)); } }