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