diff 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
line wrap: on
line diff
--- a/OrthancServer/main.cpp	Thu Apr 07 17:26:13 2016 +0200
+++ b/OrthancServer/main.cpp	Thu Apr 07 17:42:20 2016 +0200
@@ -278,9 +278,13 @@
 {
 private:
   ServerContext& context_;
+  OrthancPlugins*  plugins_;
 
 public:
-  MyIncomingHttpRequestFilter(ServerContext& context) : context_(context)
+  MyIncomingHttpRequestFilter(ServerContext& context,
+                              OrthancPlugins* plugins) : 
+    context_(context),
+    plugins_(plugins)
   {
   }
 
@@ -290,6 +294,12 @@
                          const char* username,
                          const IHttpHandler::Arguments& httpHeaders) const
   {
+    if (plugins_ != NULL &&
+        !plugins_->IsAllowed(method, uri, ip, username, httpHeaders))
+    {
+      return false;
+    }
+
     static const char* HTTP_FILTER = "IncomingHttpRequestFilter";
 
     LuaScripting::Locker locker(context_.GetLua());
@@ -679,7 +689,7 @@
   
 
   // HTTP server
-  MyIncomingHttpRequestFilter httpFilter(context);
+  MyIncomingHttpRequestFilter httpFilter(context, plugins);
   MongooseServer httpServer;
   httpServer.SetPortNumber(Configuration::GetGlobalIntegerParameter("HttpPort", 8042));
   httpServer.SetRemoteAccessAllowed(Configuration::GetGlobalBoolParameter("RemoteAccessAllowed", false));