private void start() {
      // Metrics initialization. Can potentially be updated after parsing blob properties.
      restRequest.getMetricsTracker()
          .injectMetrics(frontendMetrics.postBlobMetricsGroup.getRestRequestMetrics(restRequest.isSslUsed(), false));
      try {
        // Start the callback chain by parsing blob info headers and performing request security processing.
        BlobInfo blobInfo = getBlobInfoFromRequest();
        checkUploadRequirements(blobInfo.getBlobProperties());
        securityService.processRequest(restRequest, securityProcessRequestCallback(blobInfo));
      } catch (Exception e) {
        finalCallback.onCompletion(null, e);
      }
    }
Start the chain by parsing the blob info headers in the request and calling
{@link SecurityService#processRequest} to perform additional request time security checks.
ambry-frontend/src/main/java/com/github/ambry/frontend/PostBlobHandler.java