00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00035 #ifndef OW_AUTHORIZERMANAGER_HPP_INCLUDE_GUARD_
00036 #define OW_AUTHORIZERMANAGER_HPP_INCLUDE_GUARD_
00037
00038 #include "OW_config.h"
00039 #include "OW_ServiceIFC.hpp"
00040 #include "OW_Authorizer2IFC.hpp"
00041 #include "OW_CimomCommonFwd.hpp"
00042
00043 namespace OW_NAMESPACE
00044 {
00045
00046 class OW_CIMOMCOMMON_API AuthorizerManager : public ServiceIFC
00047 {
00048 public:
00049
00050 AuthorizerManager();
00051 AuthorizerManager(const Authorizer2IFCRef& authorizerRef);
00052
00053 ~AuthorizerManager();
00054
00055 virtual String getName() const;
00056
00057 void setAuthorizer(const Authorizer2IFCRef& authorizerRef)
00058 {
00059 m_authorizer = authorizerRef;
00060 }
00061
00062 void turnOff(OperationContext& context);
00063 void turnOn(OperationContext& context);
00064 bool isOn(OperationContext& context);
00065
00089 bool allowReadInstance(
00090 const ServiceEnvironmentIFCRef& env,
00091 const String& ns,
00092 const String& className,
00093 const StringArray* clientPropertyList,
00094 StringArray& authorizedPropertyList,
00095 OperationContext& context);
00096
00097 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00098
00109 bool allowWriteInstance(
00110 const ServiceEnvironmentIFCRef& env,
00111 const String& ns,
00112 const CIMObjectPath& op,
00113 Authorizer2IFC::EDynamicFlag dynamic,
00114 Authorizer2IFC::EWriteFlag flag,
00115 OperationContext& context);
00116 #endif
00117
00124 bool allowReadSchema(
00125 const ServiceEnvironmentIFCRef& env,
00126 const String& ns,
00127 OperationContext& context);
00128
00129 #if !defined(OW_DISABLE_SCHEMA_MANIPULATION) || !defined(OW_DISABLE_QUALIFIER_DECLARATION)
00130
00137 bool allowWriteSchema(
00138 const ServiceEnvironmentIFCRef& env,
00139 const String& ns,
00140 Authorizer2IFC::EWriteFlag flag,
00141 OperationContext& context);
00142 #endif
00143
00150 bool allowAccessToNameSpace(
00151 const ServiceEnvironmentIFCRef& env,
00152 const String& ns,
00153 Authorizer2IFC::EAccessType accessType,
00154 OperationContext& context);
00155
00156 #if !defined(OW_DISABLE_INSTANCE_MANIPULATION) && !defined(OW_DISABLE_NAMESPACE_MANIPULATION)
00157
00163 bool allowCreateNameSpace(
00164 const ServiceEnvironmentIFCRef& env,
00165 const String& ns,
00166 OperationContext& context);
00167
00174 bool allowDeleteNameSpace(
00175 const ServiceEnvironmentIFCRef& env,
00176 const String& ns,
00177 OperationContext& context);
00178 #endif
00179
00185 bool allowEnumNameSpace(
00186 const ServiceEnvironmentIFCRef& env,
00187 OperationContext& context);
00188
00198 bool allowMethodInvocation(
00199 const ServiceEnvironmentIFCRef& env,
00200 const String& ns,
00201 const CIMObjectPath& path,
00202 const String& methodName,
00203 OperationContext& context);
00204
00209 virtual void init(const ServiceEnvironmentIFCRef& env);
00210 virtual void shutdown();
00211
00212 private:
00213
00214 Authorizer2IFCRef m_authorizer;
00215 bool m_initialized;
00216 };
00217
00218 }
00219
00220
00221 #endif
00222
00223