code: def topic_filtering(self, session: Session, topic):
          
          topic_plugins = None
          topic_config = self.config.get('topic-check', None)
          if topic_config and topic_config.get('enabled', False):
              topic_plugins = topic_config.get('plugins', None)
          returns = yield from self.plugins_manager.map_plugin_coro(
              "topic_filtering",
              session=session,
              topic=topic,
              filter_plugins=topic_plugins)
          topic_result = True
          if returns:
              for plugin in returns:
                  res = returns[plugin]
                  if res is False:
                      topic_result = False
                      self.logger.debug("Topic filtering failed due to '%s' plugin result: %s" % (plugin.name, res))
                  else:
                      self.logger.debug("'%s' plugin result: %s" % (plugin.name, res))
          # If all plugins returned True, authentication is success
          return topic_result
docs: This method call the topic_filtering method on registered plugins to check that the subscription is allowed.
          User is considered allowed if all plugins called return True.
          Plugins topic_filtering() method are supposed to return :
           - True if MQTT client can be subscribed to the topic
           - False if MQTT client is not allowed to subscribe to the topic
           - None if topic filtering can't be achieved (then plugin result is then ignored)
          :param session:
          :param listener:
          :param topic: Topic in which the client wants to subscribe
          :return: