url_preprocessing.h 925 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <yql/essentials/core/url_preprocessing/interface/url_preprocessing.h>
  3. #include <yql/essentials/core/url_preprocessing/pattern_group.h>
  4. #include <yql/essentials/core/url_preprocessing/url_mapper.h>
  5. #include <yql/essentials/core/yql_user_data.h>
  6. #include <util/generic/string.h>
  7. #include <util/generic/ptr.h>
  8. #include <vector>
  9. #include <utility>
  10. namespace NYql {
  11. class TGatewaysConfig;
  12. class TUrlPreprocessing: public IUrlPreprocessing {
  13. public:
  14. using TPtr = TIntrusivePtr<TUrlPreprocessing>;
  15. TUrlPreprocessing(const TGatewaysConfig& cfg) {
  16. Configure(false, cfg);
  17. }
  18. TUrlPreprocessing() = default;
  19. ~TUrlPreprocessing() = default;
  20. void Configure(bool restrictedUser, const TGatewaysConfig& cfg);
  21. std::pair<TString, TString> Preprocess(const TString& url);
  22. private:
  23. bool RestrictedUser_ = false;
  24. TUrlMapper Mapper_;
  25. TPatternGroup AllowedUrls_;
  26. };
  27. }