@Override
  public void processRequestCharges(RestRequest restRequest, RestResponseChannel responseChannel, BlobInfo blobInfo) {
    Map<String, Double> requestCost = ambryCostModelPolicy.calculateRequestCost(restRequest, responseChannel, blobInfo);
    setRequestCostHeader(requestCost, responseChannel);
    if (QuotaUtils.isRequestResourceQuotaManaged(restRequest) && quotaManager != null) {
      ThrottlingRecommendation throttlingRecommendation = null;
      try {
        throttlingRecommendation = quotaManager.recommend(restRequest);
      } catch (QuotaException quotaException) {
        LOGGER.warn("Exception {} in while processing request charges.", quotaException);
      }
      if (throttlingRecommendation != null) {
        RestUtils.buildUserQuotaHeadersMap(throttlingRecommendation)
            .entrySet()
            .stream()
            .forEach(headerEntry -> responseChannel.setHeader(headerEntry.getKey(), headerEntry.getValue()));
      }
    }
  }
Default implementation of {@link SecurityService} for Ambry that doesn't do any validations, but just
sets the respective headers on response.
ambry-frontend/src/main/java/com/github/ambry/frontend/AmbrySecurityService.java