private Callback<Void> securityPostProcessRequestCallback() {
      return buildCallback(frontendMetrics.getAccountsSecurityPostProcessRequestMetrics, securityCheckResult -> {
        byte[] serializedAccountsOrContainers;
        if (RestUtils.getRequestPath(restRequest).matchesOperation(ACCOUNTS_CONTAINERS)) {
          LOGGER.debug("Received request for getting single container with arguments: {}", restRequest.getArgs());
          Container container = getContainer();
          serializedAccountsOrContainers = AccountCollectionSerde.serializeContainersInJson(Collections.singletonList(container));
          restResponseChannel.setHeader(RestUtils.Headers.TARGET_ACCOUNT_ID, container.getParentAccountId());
        } else {
          boolean ignoreContainers =
              RestUtils.getBooleanHeader(restRequest.getArgs(), RestUtils.Headers.IGNORE_CONTAINERS, false);
          serializedAccountsOrContainers = AccountCollectionSerde.serializeAccountsInJson(getAccounts(), ignoreContainers);
        }
        ReadableStreamChannel channel = new ByteBufferReadableStreamChannel(ByteBuffer.wrap(
            serializedAccountsOrContainers));
        restResponseChannel.setHeader(RestUtils.Headers.DATE, new GregorianCalendar().getTime());
        restResponseChannel.setHeader(RestUtils.Headers.CONTENT_TYPE, RestUtils.JSON_CONTENT_TYPE);
        restResponseChannel.setHeader(RestUtils.Headers.CONTENT_LENGTH, channel.getSize());
        finalCallback.onCompletion(channel, null);
      }, uri, LOGGER, finalCallback);
    }
After {@link SecurityService#postProcessRequest} finishes, call the final callback with the response body to
sen
@return a {@link Callback} to be used with {@link SecurityService#postProcessRequest}.
ambry-frontend/src/main/java/com/github/ambry/frontend/GetAccountsHandler.java