89 Poco::Net::HTTPServerRequest& request;
90 Poco::Net::HTTPServerResponse& response;
93 std::vector<std::string> path;
94 Poco::URI::QueryParameters params;
95 std::string objectName;
99 Poco::Net::HTTPServerResponse& resp);
102 size_t depth()
const {
return path.size(); }
104 const std::string& operator[](
size_t i)
const
106 static const std::string empty;
107 return (i < path.size()) ? path[i] : empty;
111 std::string pathString()
const;
181 public Poco::Net::HTTPRequestHandler
184 UHttpRequestHandler( std::shared_ptr<IHttpRequestRegistry> _registry,
const std::string& httpCORS_allow =
"*",
185 const std::string& contentType=
"text/json; charset=UTF-8",
186 const NetworkRules& whitelist = NetworkRules(),
187 const NetworkRules& blacklist = NetworkRules(),
188 const NetworkRules& trustedProxies = NetworkRules(),
189 bool bearerRequired =
false,
190 const BearerTokens& bearerTokens = BearerTokens());
192 virtual void handleRequest( Poco::Net::HTTPServerRequest& req, Poco::Net::HTTPServerResponse& resp )
override;
194 static bool match(
const Poco::Net::IPAddress& ip,
const NetworkRule& rule);
195 static bool inRules(
const Poco::Net::IPAddress& ip,
const NetworkRules& rules);
196 static bool isDenied(
const Poco::Net::IPAddress& ip,
197 const NetworkRules& whitelist,
198 const NetworkRules& blacklist);
199 static bool validateBearer(
const std::string& header,
const BearerTokens& tokens);
203 std::shared_ptr<IHttpRequestRegistry> registry;
204 std::shared_ptr<DebugStream> log;
205 const std::string httpCORS_allow = {
"*" };
206 std::string httpDefaultContentType = {
"text/json; charset=UTF-8" };
207 NetworkRules whitelist;
208 NetworkRules blacklist;
209 NetworkRules trustedProxies;
210 bool bearerRequired = {
false };
211 BearerTokens bearerTokens;
215 public Poco::Net::HTTPRequestHandlerFactory
221 virtual Poco::Net::HTTPRequestHandler* createRequestHandler(
const Poco::Net::HTTPServerRequest& )
override;
224 void setCORS_allow(
const std::string& allow );
225 void setDefaultContentType(
const std::string& ct );
226 void setWhitelist(
const NetworkRules& rules );
227 void setBlacklist(
const NetworkRules& rules );
228 void setTrustedProxies(
const NetworkRules& rules );
229 void setBearerRequired(
bool required );
230 void setBearerTokens(
const BearerTokens& tokens );
232 std::shared_ptr<IHttpRequestRegistry> registry;
233 std::string httpCORS_allow = {
"*" };
234 std::string httpDefaultContentType = {
"text/json; charset=UTF-8" };
235 NetworkRules whitelist;
236 NetworkRules blacklist;
237 NetworkRules trustedProxies;
238 bool bearerRequired = {
false };
239 BearerTokens bearerTokens;
Definition UHttpRequestHandler.h:87