#pragma once #include #include #include #include #include #include #include #include namespace NYql { class TGatewaysConfig; class TUrlPreprocessing: public IUrlPreprocessing { public: using TPtr = TIntrusivePtr; explicit TUrlPreprocessing(const TGatewaysConfig& cfg) { Configure(false, cfg); } TUrlPreprocessing() = default; ~TUrlPreprocessing() override = default; void Configure(bool restrictedUser, const TGatewaysConfig& cfg); std::pair Preprocess(const TString& url) override; private: bool RestrictedUser_ = false; TUrlMapper Mapper_; TPatternGroup AllowedUrls_; }; } // namespace NYql