public QueryOperationContext executeCQAuthorize(String cqName, String queryString,
      Set regionNames, Object queryResult, QueryOperationContext executeCQContext)
      throws NotAuthorizedException {

    if (executeCQContext == null) {
      executeCQContext = new ExecuteCQOperationContext(cqName, queryString, regionNames, true);
    } else {
      executeCQContext.setPostOperation();
    }
    executeCQContext.setQueryResult(queryResult);
    if (!postAuthzCallback.authorizeOperation(null, executeCQContext)) {
      String errStr =
          String.format(
              "In post-process: not authorized to perform EXECUTE_CQ operation %s on the cache",
              queryString);
      logger.warning(String.format("%s : %s", id, errStr));
      if (isPrincipalSerializable) {
        throw new NotAuthorizedException(errStr, principal);
      } else {
        throw new NotAuthorizedException(errStr);
      }
    } else {
      if (logger.finestEnabled()) {
        logger
            .finest(id + ": In post-process: authorized to perform EXECUTE_CQ operation ["
                + queryString + "] on cache");
      }
    }
    return executeCQContext;
  }
This class implements post-processing authorization calls for various operations. It provides
methods to invoke authorization callback ({@link AccessControl#authorizeOperation}) to invoke the
post-processing callback that may modify the results. The data being passed for the operation is
encapsulated in a {@link OperationContext} object that can be modified by the post-processing
authorization callbacks.

@since GemFire 5.5
geode-core/src/main/java/org/apache/geode/internal/security/AuthorizeRequestPP.java