#pragma once
#include <drogon/plugins/Plugin.h>
#include <regex>
#include <vector>
#include <memory>
#include <drogon/HttpFilter.h>
namespace drogon
{
namespace plugin
{
class DROGON_EXPORT GlobalFilters
    : public drogon::Plugin<GlobalFilters>,
      public std::enable_shared_from_this<GlobalFilters>
{
  public:
    GlobalFilters()
    {
    }
    void initAndStart(const Json::Value &config) override;
    void shutdown() override;
  private:
    std::vector<std::shared_ptr<drogon::HttpFilterBase>> filters_;
    std::regex exemptPegex_;
    bool regexFlag_{false};
};
}  
}  