code: def application(environ, start_response):
      
      path = environ.get('PATH_INFO', '').lstrip('/')
      logger.info("<application> PATH: %s", path)
  
      if path == "metadata":
          return metadata(environ, start_response)
  
      user = environ.get("REMOTE_USER", "")
      if not user:
          user = environ.get("repoze.who.identity", "")
          logger.info("repoze.who.identity: '%s'", user)
      else:
          logger.info("REMOTE_USER: '%s'", user)
      #logger.info(logging.Logger.manager.loggerDict)
      for regex, callback in urls:
          if user:
              match = re.search(regex, path)
              if match is not None:
                  try:
                      environ['myapp.url_args'] = match.groups()[0]
                  except IndexError:
                      environ['myapp.url_args'] = path
                  return callback(environ, start_response, user)
          else:
              return not_authn(environ, start_response)
  
      return not_found(environ, start_response)
docs: The main WSGI application. Dispatch the current request to
      the functions from above and store the regular expression
      captures in the WSGI environment as `myapp.url_args` so that
      the functions from above can access the url placeholders.
  
      If nothing matches, call the `not_found` function.
  
      :param environ: The HTTP application environment
      :param start_response: The application to run when the handling of the
          request is done
      :return: The response as a list of lines