Back to index

nordugrid-arc-nox  1.1.0~rc6
XACMLRequest.h
Go to the documentation of this file.
00001 #ifndef __ARC_SEC_XACMLREQUEST_H__
00002 #define __ARC_SEC_XACMLREQUEST_H__
00003 
00004 #include <list>
00005 #include <arc/XMLNode.h>
00006 #include <arc/Logger.h>
00007 #include <arc/security/ArcPDP/attr/AttributeFactory.h>
00008 #include <arc/security/ArcPDP/Request.h>
00009 
00010 //#include "ArcEvaluator.h"
00011 
00013 
00014 namespace ArcSec {
00015 
00016 class XACMLRequest : public Request {
00017 //friend class ArcEvaluator;
00018 
00019 public:
00021   virtual const char* getEvalName() const { };
00022 
00024   virtual const char* getName() const { };
00025 
00026   virtual Arc::XMLNode& getReqNode() { return reqnode; };
00027 
00028   static Arc::Plugin* get_request(Arc::PluginArgument* arg);
00029 
00030   //**Set the attribute factory for the usage of Request*/
00031   virtual void setAttributeFactory(AttributeFactory* attributefactory) { attrfactory = attributefactory; };
00032 
00033   //**Default constructor*/
00034   XACMLRequest ();
00035 
00036   //**Parse request information from external source*/
00037   XACMLRequest (const Source& source);
00038 
00039   virtual ~XACMLRequest();
00040 
00041   //**Create the objects included in Request according to the node attached to the Request object*/
00042   virtual void make_request();
00043 
00044 private:
00045   //**AttributeFactory which is in charge of producing Attribute*/
00046   AttributeFactory * attrfactory;
00047 
00048   //**A XMLNode structure which includes the xml structure of a request*/
00049   Arc::XMLNode reqnode;
00050 
00051   Subject sub;
00052   Resource res;
00053   Action act;
00054   Context env;
00055 
00056 protected:
00057   static Arc::Logger logger;
00058 };
00059 
00060 } // namespace ArcSec
00061 
00062 #endif /* __ARC_SEC_XACMLREQUEST_H__ */