Mercurial > hg > orthanc
comparison OrthancServer/main.cpp @ 1962:22ddb22fce83
sample plugin
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 07 Apr 2016 17:42:20 +0200 |
parents | 45c4387a379c |
children | 877713b3a91c |
comparison
equal
deleted
inserted
replaced
1961:ef1e9856c26f | 1962:22ddb22fce83 |
---|---|
276 | 276 |
277 class MyIncomingHttpRequestFilter : public IIncomingHttpRequestFilter | 277 class MyIncomingHttpRequestFilter : public IIncomingHttpRequestFilter |
278 { | 278 { |
279 private: | 279 private: |
280 ServerContext& context_; | 280 ServerContext& context_; |
281 OrthancPlugins* plugins_; | |
281 | 282 |
282 public: | 283 public: |
283 MyIncomingHttpRequestFilter(ServerContext& context) : context_(context) | 284 MyIncomingHttpRequestFilter(ServerContext& context, |
285 OrthancPlugins* plugins) : | |
286 context_(context), | |
287 plugins_(plugins) | |
284 { | 288 { |
285 } | 289 } |
286 | 290 |
287 virtual bool IsAllowed(HttpMethod method, | 291 virtual bool IsAllowed(HttpMethod method, |
288 const char* uri, | 292 const char* uri, |
289 const char* ip, | 293 const char* ip, |
290 const char* username, | 294 const char* username, |
291 const IHttpHandler::Arguments& httpHeaders) const | 295 const IHttpHandler::Arguments& httpHeaders) const |
292 { | 296 { |
297 if (plugins_ != NULL && | |
298 !plugins_->IsAllowed(method, uri, ip, username, httpHeaders)) | |
299 { | |
300 return false; | |
301 } | |
302 | |
293 static const char* HTTP_FILTER = "IncomingHttpRequestFilter"; | 303 static const char* HTTP_FILTER = "IncomingHttpRequestFilter"; |
294 | 304 |
295 LuaScripting::Locker locker(context_.GetLua()); | 305 LuaScripting::Locker locker(context_.GetLua()); |
296 | 306 |
297 // Test if the instance must be filtered out | 307 // Test if the instance must be filtered out |
677 | 687 |
678 MyHttpExceptionFormatter exceptionFormatter(Configuration::GetGlobalBoolParameter("HttpDescribeErrors", true), plugins); | 688 MyHttpExceptionFormatter exceptionFormatter(Configuration::GetGlobalBoolParameter("HttpDescribeErrors", true), plugins); |
679 | 689 |
680 | 690 |
681 // HTTP server | 691 // HTTP server |
682 MyIncomingHttpRequestFilter httpFilter(context); | 692 MyIncomingHttpRequestFilter httpFilter(context, plugins); |
683 MongooseServer httpServer; | 693 MongooseServer httpServer; |
684 httpServer.SetPortNumber(Configuration::GetGlobalIntegerParameter("HttpPort", 8042)); | 694 httpServer.SetPortNumber(Configuration::GetGlobalIntegerParameter("HttpPort", 8042)); |
685 httpServer.SetRemoteAccessAllowed(Configuration::GetGlobalBoolParameter("RemoteAccessAllowed", false)); | 695 httpServer.SetRemoteAccessAllowed(Configuration::GetGlobalBoolParameter("RemoteAccessAllowed", false)); |
686 httpServer.SetKeepAliveEnabled(Configuration::GetGlobalBoolParameter("KeepAlive", false)); | 696 httpServer.SetKeepAliveEnabled(Configuration::GetGlobalBoolParameter("KeepAlive", false)); |
687 httpServer.SetHttpCompressionEnabled(Configuration::GetGlobalBoolParameter("HttpCompressionEnabled", true)); | 697 httpServer.SetHttpCompressionEnabled(Configuration::GetGlobalBoolParameter("HttpCompressionEnabled", true)); |