OW_AuthorizerManager.hpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * Copyright (C) 2003-2004 Novell, Inc. All rights reserved.
00003 *
00004 * Redistribution and use in source and binary forms, with or without
00005 * modification, are permitted provided that the following conditions are met:
00006 *
00007 *  - Redistributions of source code must retain the above copyright notice,
00008 *    this list of conditions and the following disclaimer.
00009 *
00010 *  - Redistributions in binary form must reproduce the above copyright notice,
00011 *    this list of conditions and the following disclaimer in the documentation
00012 *    and/or other materials provided with the distribution.
00013 *
00014 *  - Neither the name of Novell, Inc. nor the names of its
00015 *    contributors may be used to endorse or promote products derived from this
00016 *    software without specific prior written permission.
00017 *
00018 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
00019 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021 * ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS
00022 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00023 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00024 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00025 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00026 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00027 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00028 * POSSIBILITY OF SUCH DAMAGE.
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 

Generated on Thu Feb 9 08:47:52 2006 for openwbem by  doxygen 1.4.6