docs: public static <ResType> Iterable<ResType> filterAuthorizedResources(
        final HttpServletRequest request,
        final Iterable<ResType> resources,
        final Function<? super ResType, Iterable<ResourceAction>> resourceActionGenerator,
        final AuthorizerMapper authorizerMapper
    )
    {
      if (request.getAttribute(AuthConfig.DRUID_ALLOW_UNSECURED_PATH) != null) {
        return resources;
      }
  
      if (request.getAttribute(AuthConfig.DRUID_AUTHORIZATION_CHECKED) != null) {
        throw new ISE("Request already had authorization check.");
      }
  
      final AuthenticationResult authenticationResult = authenticationResultFromRequest(request);
  
      final Iterable<ResType> filteredResources = filterAuthorizedResources(
          authenticationResult,
          resources,
          resourceActionGenerator,
          authorizerMapper
      );
  
      // We're filtering, so having access to none of the objects isn't an authorization failure (in terms of whether
      // to send an error response or not.)
      request.setAttribute(AuthConfig.DRUID_AUTHORIZATION_CHECKED, true);
  
      return filteredResources;
    }