Back to index

nordugrid-arc-nox  1.1.0~rc6
PDPServiceInvoker.h
Go to the documentation of this file.
00001 #ifndef __ARC_SEC_PDPSERVICEINVOKER_H__
00002 #define __ARC_SEC_PDPSERVICEINVOKER_H__
00003 
00004 #include <stdlib.h>
00005 
00006 #include <arc/loader/Loader.h>
00007 #include <arc/ArcConfig.h>
00008 #include <arc/client/ClientInterface.h>
00009 #include <arc/security/PDP.h>
00010 
00011 namespace ArcSec {
00012 
00014 class PDPServiceInvoker : public PDP {
00015  public:
00016   static Arc::Plugin* get_pdpservice_invoker(Arc::PluginArgument* arg);
00017   PDPServiceInvoker(Arc::Config* cfg);
00018   virtual ~PDPServiceInvoker();
00019   virtual bool isPermitted(Arc::Message *msg) const;
00020  private:
00021   Arc::ClientSOAP* client;
00022   std::string proxy_path;
00023   std::string cert_path;
00024   std::string key_path;
00025   std::string ca_dir;
00026   std::string ca_file;
00027   std::list<std::string> select_attrs;
00028   std::list<std::string> reject_attrs;
00029   std::list<std::string> policy_locations;
00030   bool is_xacml; //If the policy decision request is with XACML format
00031   bool is_saml; //If the "SAML2.0 profile of XACML v2.0" is used
00032  protected:
00033   static Arc::Logger logger;
00034 };
00035 
00036 } // namespace ArcSec
00037 
00038 #endif /* __ARC_SEC_PDPSERVICEINVOKER_H__ */
00039