本文整理汇总了C++中ConfigManager::getCurrentValue方法的典型用法代码示例。如果您正苦于以下问题:C++ ConfigManager::getCurrentValue方法的具体用法?C++ ConfigManager::getCurrentValue怎么用?C++ ConfigManager::getCurrentValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConfigManager
的用法示例。
在下文中一共展示了ConfigManager::getCurrentValue方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setState
void CIMServer::setState(Uint32 state)
{
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::setState()");
_serverState->setState(state);
//
// get the configured authentication and authorization flags
//
ConfigManager* configManager = ConfigManager::getInstance();
Boolean enableAuthentication = ConfigManager::parseBooleanValue(
configManager->getCurrentValue("enableAuthentication"));
Boolean enableNamespaceAuthorization = ConfigManager::parseBooleanValue(
configManager->getCurrentValue("enableNamespaceAuthorization"));
if (state == CIMServerState::TERMINATING)
{
// tell decoder that CIMServer is terminating
_cimOperationRequestDecoder->setServerTerminating(true);
_cimExportRequestDecoder->setServerTerminating(true);
_rsProcessor->setServerTerminating(true);
#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN
_wsmProcessor->setServerTerminating(true);
#endif
// tell authorizer that CIMServer is terminating ONLY if
// authentication and authorization are enabled
//
if ( enableAuthentication && enableNamespaceAuthorization )
{
_cimOperationRequestAuthorizer->setServerTerminating(true);
}
}
else
{
// tell decoder that CIMServer is not terminating
_cimOperationRequestDecoder->setServerTerminating(false);
_cimExportRequestDecoder->setServerTerminating(false);
_rsProcessor->setServerTerminating(false);
#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN
_wsmProcessor->setServerTerminating(false);
#endif
// tell authorizer that CIMServer is terminating ONLY if
// authentication and authorization are enabled
//
if ( enableAuthentication && enableNamespaceAuthorization )
{
_cimOperationRequestAuthorizer->setServerTerminating(false);
}
}
PEG_METHOD_EXIT();
}
示例2: auditLogInitializeCallback
void CIMServer::auditLogInitializeCallback()
{
#ifdef PEGASUS_ENABLE_AUDIT_LOGGER
Array<String> propertyNames;
Array<String> propertyValues;
// Get all current property names and values
ConfigManager* configManager = ConfigManager::getInstance();
configManager->getAllPropertyNames(propertyNames, false);
for (Uint32 i = 0; i < propertyNames.size(); i++)
{
propertyValues.append(configManager->getCurrentValue(propertyNames[i]));
}
AuditLogger::logCurrentConfig(propertyNames, propertyValues);
// get currently registered provider module instances
Array<CIMInstance> moduleInstances;
moduleInstances =
_cimserver->_providerRegistrationManager->enumerateInstancesForClass(
CIMObjectPath("PG_ProviderModule"));
AuditLogger::logCurrentRegProvider(moduleInstances);
AuditLogger::logCurrentEnvironmentVar();
#endif
}
示例3: while
Array<String> CIMOperationRequestAuthorizer::_getAuthorizedUserGroups()
{
PEG_METHOD_ENTER(TRC_SERVER,
"CIMOperationRequestAuthorizer::getAuthorizedUserGroups");
Array<String> authorizedGroups;
String groupNames;
//
// Get a config manager instance
//
ConfigManager* configManager = ConfigManager::getInstance();
groupNames = configManager->getCurrentValue("authorizedUserGroups");
//
// Check if the group name is empty
//
if (groupNames == String::EMPTY)
{
PEG_METHOD_EXIT();
return authorizedGroups;
}
//
// Append _GROUPNAME_SEPARATOR to the end of the groups
//
groupNames.append(_GROUPNAME_SEPARATOR);
Uint32 position = 0;
String groupName;
while (groupNames != String::EMPTY)
{
//
// Get a group name from user groups
// User groups are separated by _GROUPNAME_SEPARATOR
//
position = groupNames.find(_GROUPNAME_SEPARATOR);
groupName = groupNames.subString(0,(position));
authorizedGroups.append(groupName);
// Remove the searched group name
groupNames.remove(0, position + 1);
}
PEG_METHOD_EXIT();
return authorizedGroups;
}
示例4: if
/* constructor. */
SecureBasicAuthenticator::SecureBasicAuthenticator()
{
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
"SecureBasicAuthenticator::SecureBasicAuthenticator()");
// Build Authentication parameter realm required for Basic Challenge
// e.g. realm="HostName"
_realm.assign("realm=");
_realm.append(Char16('"'));
_realm.append(System::getHostName());
_realm.append(Char16('"'));
// Get a user manager instance handler
_userManager = UserManager::getInstance();
#ifdef PEGASUS_OS_ZOS
ConfigManager* configManager = ConfigManager::getInstance();
if (String::equalNoCase(
configManager->getCurrentValue("enableCFZAPPLID"),"true"))
# if (__TARGET_LIB__ < 0x410A0000)
#ifdef PEGASUS_PLATFORM_ZOS_ZSERIES_IBM
{
//
// Enable __passwd() for passticket validation
// for APPLID CFZAPPL in this thread.
//
set_ZOS_ApplicationID();
}
else
{
Logger::put_l(Logger::STANDARD_LOG, ZOS_SECURITY_NAME, Logger::WARNING,
MessageLoaderParms(
"Security.Authentication.SecureBasicAuthenticator."
"APPLID_OMVSAPPL.PEGASUS_OS_ZOS",
"CIM server authentication is using application ID OMVSAPPL."));
}
pthread_security_np(0,__USERID_IDENTITY,0,NULL,NULL,0);
#else
#error APPLID support is not available in 64-bit compilation mode before V1R10
#endif //PEGASUS_PLATFORM_ZOS_ZSERIES_IBM
#else
{
_zosAPPLID = "CFZAPPL";
}
else
{
示例5: _getSessionTimeout
int HTTPSessionList::_getSessionTimeout()
{
PEG_METHOD_ENTER(TRC_AUTHENTICATION, "HTTPSessionList::_getSessionTimeout");
// load httpSessionTimeout configuration value
ConfigManager* configManager = ConfigManager::getInstance();
String strTimeout = configManager->getCurrentValue("httpSessionTimeout");
Uint64 timeout;
StringConversion::decimalStringToUint64(strTimeout.getCString(),
timeout, false);
PEG_TRACE((TRC_AUTHENTICATION, Tracer::LEVEL3,
"Session timeout is %d", (int)timeout));
PEG_METHOD_EXIT();
return timeout;
}
示例6: startSLPProvider
void CIMServer::startSLPProvider()
{
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::startSLPProvider");
// Get Config parameter to determine if we should start SLP.
ConfigManager* configManager = ConfigManager::getInstance();
Boolean _runSLP = ConfigManager::parseBooleanValue(
configManager->getCurrentValue("slp"));
// If false, do not start slp provider
if (!_runSLP)
{
PEG_METHOD_EXIT();
return;
}
// Create a separate thread, detach and call function to execute the
// startup.
Thread t( _callSLPProvider, 0, true );
t.run();
PEG_METHOD_EXIT();
return;
}
示例7: _readAndProcessRequest
//.........这里部分代码省略.........
"ProviderManager.ProviderAgent.ProviderAgent."
"PROVIDERAGENT_NOT_INITIALIZED",
"cimprovagt \"$0\" was not yet initialized "
"prior to receiving a request message. Exiting.",
_agentId));
_terminating = true;
PEG_METHOD_EXIT();
return false;
}
//
// Check for messages to be handled by the Agent itself.
//
if (request->getType() == CIM_INITIALIZE_PROVIDER_AGENT_REQUEST_MESSAGE)
{
// Process the request in this thread
AutoPtr<CIMInitializeProviderAgentRequestMessage> ipaRequest(
dynamic_cast<CIMInitializeProviderAgentRequestMessage*>(request));
PEGASUS_ASSERT(ipaRequest.get() != 0);
ConfigManager::setPegasusHome(ipaRequest->pegasusHome);
ConfigManager* configManager = ConfigManager::getInstance();
// Initialize the configuration properties
for (Uint32 i = 0; i < ipaRequest->configProperties.size(); i++)
{
configManager->initCurrentValue(
ipaRequest->configProperties[i].first,
ipaRequest->configProperties[i].second);
}
// Set the default resource bundle directory for the MessageLoader
MessageLoader::setPegasusMsgHome(ConfigManager::getHomedPath(
configManager->getCurrentValue("messageDir")));
// Set the log file directory
#if !defined(PEGASUS_USE_SYSLOGS)
Logger::setHomeDirectory(ConfigManager::getHomedPath(
configManager->getCurrentValue("logdir")));
#endif
System::bindVerbose = ipaRequest->bindVerbose;
//
// Set _subscriptionInitComplete from value in
// InitializeProviderAgent request
//
_providerManagerRouter.setSubscriptionInitComplete
(ipaRequest->subscriptionInitComplete);
PEG_TRACE_CSTRING(TRC_PROVIDERAGENT, Tracer::LEVEL2,
"Processed the agent initialization message.");
// Notify the cimserver that the provider agent is initialized.
Uint32 messageLength = 0;
_pipeToServer->writeBuffer((const char*)&messageLength, sizeof(Uint32));
#if defined(PEGASUS_OS_ZOS) && defined(PEGASUS_ZOS_SECURITY)
// prepare and setup the thread-level security environment on z/OS
// if security initialization fails
startupCheckBPXServer(false);
startupCheckMSC();
if (!isZOSSecuritySetup())
{
Logger::put_l(Logger::ERROR_LOG, ZOS_SECURITY_NAME, Logger::FATAL,
MessageLoaderParms(
"ProviderManager.ProviderAgent.ProviderAgent."
示例8: handleEnqueue
//.........这里部分代码省略.........
PEG_METHOD_EXIT();
return;
}
else
{
sendIMethodError(
queueId,
req->getHttpMethod(),
req->messageId,
cimMethodName,
PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,
msgLoaderParms));
PEG_METHOD_EXIT();
return;
}
}
}
}
}
catch (InternalSystemError& ise)
{
sendIMethodError(
queueId,
req->getHttpMethod(),
req->messageId,
cimMethodName,
PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, ise.getMessage()));
PEG_METHOD_EXIT();
return;
}
#endif // #ifdef PEGASUS_ENABLE_USERGROUP_AUTHORIZATION
//
// Get a config manager instance
//
ConfigManager* configManager = ConfigManager::getInstance();
//
// Do namespace authorization verification
//
if (ConfigManager::parseBooleanValue(
configManager->getCurrentValue("enableNamespaceAuthorization")))
{
//
// If the user is not privileged, perform the authorization check.
//
if (!System::isPrivilegedUser(userName))
{
UserManager* userManager = UserManager::getInstance();
if (!userManager ||
!userManager->verifyAuthorization(
userName, nameSpace, cimMethodName))
{
if (cimMethodName == "InvokeMethod")
{
sendMethodError(
queueId,
req->getHttpMethod(),
req->messageId,
((CIMInvokeMethodRequestMessage*)req.get())->methodName,
PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,
MessageLoaderParms(
"Server.CIMOperationRequestAuthorizer."
"NAMESPACE_AUTHORIZATION_FAILED",
"User '$0' is not authorized to run '$1' in the "
"namespace '$2'",
userName, cimMethodName, nameSpace.getString())));
}
else
{
sendIMethodError(
queueId,
req->getHttpMethod(),
req->messageId,
cimMethodName,
PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,
MessageLoaderParms(
"Server.CIMOperationRequestAuthorizer."
"NAMESPACE_AUTHORIZATION_FAILED",
"User '$0' is not authorized to run '$1' in "
"the namespace '$2'",
userName,
cimMethodName,
nameSpace.getString())));
}
PEG_METHOD_EXIT();
return;
}
}
}
//
// Enqueue the request
//
_outputQueue->enqueue(req.release());
PEG_METHOD_EXIT();
}
示例9: cimserver_run
int CIMServerProcess::cimserver_run(
int argc,
char** argv,
Boolean shutdownOption,
Boolean debugOutputOption)
{
Boolean daemonOption = false;
#if defined (PEGASUS_OS_PASE) && !defined (PEGASUS_DEBUG)
// PASE have itself regular for checking privileged user
if (!System::isPrivilegedUser("*CURRENT "))
{
MessageLoaderParms parms(
"src.Server.cimserver.NO_AUTHORITY.PEGASUS_OS_PASE",
"The caller should be a privileged user,"
" or the server will not run.");
cerr << MessageLoader::getMessage(parms) << endl;
exit (1);
}
char jobName[11];
// this function only can be found in PASE environment
umeGetJobName(jobName, false);
if (strncmp("QUMECIMOM ", jobName, 10) != 0
&& strncmp("QUMEENDCIM", jobName, 10) != 0)
{
MessageLoaderParms parms(
"src.Server.cimserver.NOT_OFFICIAL_START.PEGASUS_OS_PASE",
"cimserver can not be started by user.\nServer will not run.");
cerr << MessageLoader::getMessage(parms) << endl;
exit (1);
}
// Direct standard input, output, and error to /dev/null,
// PASE run this job in background, any output in not allowed
freopen("/dev/null", "r", stdin);
freopen("/dev/null", "w", stdout);
freopen("/dev/null", "w", stderr);
#endif
//
// Get an instance of the Config Manager.
//
ConfigManager* configManager = ConfigManager::getInstance();
configManager->useConfigFiles = true;
try
{
//
// Get options (from command line and from configuration file); this
// removes corresponding options and their arguments from the command
// line. NOTE: If shutdownOption=true, the contents of current config
// file are not overwritten by the planned config file.
//
GetOptions(configManager, argc, argv, shutdownOption);
//
// Initialize the message home directory in the MessageLoader.
// This is the default directory where the resource bundles are found.
//
MessageLoader::setPegasusMsgHome(ConfigManager::getHomedPath(
ConfigManager::getInstance()->getCurrentValue("messageDir")));
#if !defined(PEGASUS_USE_SYSLOGS)
String logsDirectory = ConfigManager::getHomedPath(
configManager->getCurrentValue("logdir"));
// Set up the Logger. This does not open the logs.
// Might be more logical to clean before set.
Logger::setHomeDirectory(logsDirectory);
#endif
#ifdef PEGASUS_OS_PASE
/* write job log to tell where pegasus log is.*/
if(logsDirectory.size() > 0)
// this function only can be found in PASE environment
logPegasusDir2joblog(logsDirectory.getCString());
else
logPegasusDir2joblog(".");
// set ccsid to unicode for entire job
// ccsid is globolization mechanism in PASE environment
if (_SETCCSID(1208) == -1)
{
MessageLoaderParms parms(
"src.Server.cimserver.SET_CCSID_ERROR.PEGASUS_OS_PASE",
"Failed to set CCSID, server will stop.");
cerr << MessageLoader::getMessage(parms) << endl;
Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::FATAL,
parms);
exit (1);
}
char fullJobName[29];
umeGetJobName(fullJobName, true);
Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER,
Logger::INFORMATION,
MessageLoaderParms(
"src.Server.cimserver.SERVER_JOB_NAME.PEGASUS_OS_PASE",
"CIM Server's Job Name is: $0", fullJobName));
//.........这里部分代码省略.........
示例10: repository
PEGASUS_NAMESPACE_BEGIN
/*****************************************************************************
*
* The following are constants representing property names for the classes
* managed by the Interop Provider. Where multiple classes have properties of
* the same name, there will be a common CIMName object defined, and a macro
* defined that points to the common CIMName object, but whose macro name
* reflects the class in which the property is used.
*
*****************************************************************************/
//
// Constructor for the InteropProvider control provider
//
InteropProvider::InteropProvider(CIMRepository * rep) : repository(rep),
hostName(System::getHostName()), providerInitialized(false),
updateProfileCache(0),
profileIds(Array<String>()), conformingElements(Array<CIMNameArray>()),
elementNamespaces(Array<CIMNamespaceArray>())
{
PEG_METHOD_ENTER(TRC_CONTROLPROVIDER,"InteropProvider::InteropProvider");
ConfigManager *configManager = ConfigManager::getInstance();
#ifdef PEGASUS_ENABLE_SLP
enableSLP = ConfigManager::parseBooleanValue(
configManager->getCurrentValue("slp"));
#else
enableSLP = false;
#endif
httpPort = configManager->getCurrentValue("httpPort");
if (httpPort.size() == 0)
{
Uint32 portNumberHttp = System::lookupPort(
WBEM_HTTP_SERVICE_NAME, WBEM_DEFAULT_HTTP_PORT);
char buffer[32];
Uint32 n;
const char *output = Uint32ToString(buffer, portNumberHttp, n);
httpPort.assign(output, n);
}
httpsPort = configManager->getCurrentValue("httpsPort");
if (httpsPort.size() == 0)
{
Uint32 portNumberHttps = System::lookupPort(
WBEM_HTTPS_SERVICE_NAME, WBEM_DEFAULT_HTTPS_PORT);
char buffer[32];
Uint32 n;
const char *output = Uint32ToString(buffer, portNumberHttps, n);
httpsPort.assign(output, n);
}
#ifndef PEGASUS_DISABLE_PERFINST
try
{
initProvider();
}
catch(const Exception &)
{
// Provider initialization may fail if the repository is not
// populated
}
#endif
PEG_METHOD_EXIT();
}
示例11: _getSSLContext
SSLContext* CIMServer::_getSSLContext()
{
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::_getSSLContext()");
static const String PROPERTY_NAME__SSL_CERT_FILEPATH =
"sslCertificateFilePath";
static const String PROPERTY_NAME__SSL_KEY_FILEPATH = "sslKeyFilePath";
static const String PROPERTY_NAME__SSL_TRUST_STORE = "sslTrustStore";
static const String PROPERTY_NAME__SSL_CRL_STORE = "crlStore";
static const String PROPERTY_NAME__SSL_CLIENT_VERIFICATION =
"sslClientVerificationMode";
static const String PROPERTY_NAME__SSL_AUTO_TRUST_STORE_UPDATE =
"enableSSLTrustStoreAutoUpdate";
static const String PROPERTY_NAME__SSL_TRUST_STORE_USERNAME =
"sslTrustStoreUserName";
static const String PROPERTY_NAME__HTTP_ENABLED =
"enableHttpConnection";
static const String PROPERTY_NAME__SSL_CIPHER_SUITE = "sslCipherSuite";
static const String PROPERTY_NAME__SSL_COMPATIBILITY =
"sslBackwardCompatibility";
String verifyClient;
String trustStore;
SSLContext* sslContext = 0;
//
// Get a config manager instance
//
ConfigManager* configManager = ConfigManager::getInstance();
// Note that if invalid values were set for either sslKeyFilePath,
// sslCertificateFilePath, crlStore or sslTrustStore, the invalid
// paths would have been detected in SecurityPropertyOwner and
// terminated the server startup. This happens regardless of whether
// or not HTTPS is enabled (not a great design, but that seems to
// be how other properties are validated as well)
//
// Get the sslClientVerificationMode property from the Config
// Manager.
//
verifyClient = configManager->getCurrentValue(
PROPERTY_NAME__SSL_CLIENT_VERIFICATION);
//
// Get the sslTrustStore property from the Config Manager.
//
trustStore = configManager->getCurrentValue(
PROPERTY_NAME__SSL_TRUST_STORE);
if (trustStore != String::EMPTY)
{
trustStore = ConfigManager::getHomedPath(trustStore);
}
PEG_TRACE((TRC_SERVER, Tracer::LEVEL4,"Server trust store name: %s",
(const char*)trustStore.getCString()));
//
// Get the sslTrustStoreUserName property from the Config Manager.
//
String trustStoreUserName;
trustStoreUserName = configManager->getCurrentValue(
PROPERTY_NAME__SSL_TRUST_STORE_USERNAME);
if (!String::equal(verifyClient, "disabled"))
{
//
// 'required' and 'optional' settings must have a valid truststore
//
if (trustStore == String::EMPTY)
{
MessageLoaderParms parms(
"Pegasus.Server.SSLContextManager."
"SSL_CLIENT_VERIFICATION_EMPTY_TRUSTSTORE",
"The \"sslTrustStore\" configuration property must be set "
"if \"sslClientVerificationMode\" is 'required' or "
"'optional'.");
PEG_METHOD_EXIT();
throw SSLException(parms);
}
#ifdef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET
//
// ATTN: 'required' setting must have http port enabled.
// If only https is enabled, and a call to shutdown the
// cimserver is given, the call will hang and a forced shutdown
// will ensue. This is because the CIMClient::connectLocal call
// cannot specify a certificate for authentication against
// the local server. This limitation is being investigated.
// See Bugzilla 2995.
//
if (String::equal(verifyClient, "required"))
{
if (!ConfigManager::parseBooleanValue(
configManager->getCurrentValue(
PROPERTY_NAME__HTTP_ENABLED)))
{
MessageLoaderParms parms(
"Pegasus.Server.SSLContextManager."
"INVALID_CONF_HTTPS_REQUIRED",
//.........这里部分代码省略.........
示例12: _init
void CIMServer::_init()
{
// pre-initialize the hostname.
System::getHostName();
_monitor.reset(new Monitor());
#if (defined(PEGASUS_OS_HPUX) || defined(PEGASUS_OS_LINUX)) \
&& defined(PEGASUS_USE_RELEASE_DIRS)
if (chdir(PEGASUS_CORE_DIR) != 0)
{
PEG_TRACE((TRC_SERVER, Tracer::LEVEL2,
"chdir(\"%s\") failed with errno %d.", PEGASUS_CORE_DIR, errno));
}
#endif
// -- Create a repository:
String repositoryRootPath =
ConfigManager::getHomedPath(
ConfigManager::getInstance()->getCurrentValue("repositoryDir"));
#ifdef DO_NOT_CREATE_REPOSITORY_ON_STARTUP
// If this code is enable, the CIMServer will fail to start
// if the repository directory does not exist. If called,
// the Repository will create an empty repository.
// This check has been disabled to allow cimmof to call
// the CIMServer to build the initial repository.
if (!FileSystem::isDirectory(repositoryRootPath))
{
throw NoSuchDirectory(repositoryRootPath);
}
#endif
_repository = new CIMRepository(repositoryRootPath);
// -- Create a UserManager object:
#ifndef PEGASUS_PAM_AUTHENTICATION
UserManager::getInstance(_repository);
#endif
// -- Create a SCMOClass Cache and set call back for the repository
SCMOClassCache::getInstance()->setCallBack(_scmoClassCache_GetClass);
// -- Create a CIMServerState object:
_serverState.reset(new CIMServerState());
_providerRegistrationManager = new ProviderRegistrationManager(_repository);
// -- Create queue inter-connections:
_providerManager = new ProviderManagerService(
_providerRegistrationManager,
_repository,
DefaultProviderManager::createDefaultProviderManagerCallback);
// Create IndicationHandlerService:
_handlerService = new IndicationHandlerService(_repository);
_cimOperationRequestDispatcher = new CIMOperationRequestDispatcher(
_repository, _providerRegistrationManager);
// Create the control service
_controlService = new ModuleController(PEGASUS_QUEUENAME_CONTROLSERVICE);
// Jump this number up when there are more control providers.
_controlProviders.reserveCapacity(16);
// Create the Configuration control provider
ProviderMessageHandler* configProvider = new ProviderMessageHandler(
"CIMServerControlProvider", "ConfigSettingProvider",
new ConfigSettingProvider(), 0, 0, false);
_controlProviders.append(configProvider);
_controlService->register_module(
PEGASUS_MODULENAME_CONFIGPROVIDER,
configProvider,
controlProviderReceiveMessageCallback);
#ifndef PEGASUS_PAM_AUTHENTICATION
// Create the User/Authorization control provider
ProviderMessageHandler* userAuthProvider = new ProviderMessageHandler(
"CIMServerControlProvider", "UserAuthProvider",
new UserAuthProvider(_repository), 0, 0, false);
_controlProviders.append(userAuthProvider);
_controlService->register_module(
PEGASUS_MODULENAME_USERAUTHPROVIDER,
userAuthProvider,
controlProviderReceiveMessageCallback);
#endif
// Create the Provider Registration control provider
ProviderMessageHandler* provRegProvider = new ProviderMessageHandler(
"CIMServerControlProvider", "ProviderRegistrationProvider",
//.........这里部分代码省略.........
示例13: handleEnqueue
//.........这里部分代码省略.........
req->messageId,
cimMethodName,
PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,
msgLoaderParms));
PEG_METHOD_EXIT();
return;
}
}
}
}
}
catch (InternalSystemError &ise)
{
sendIMethodError(
queueId,
req->getHttpMethod(),
req->messageId,
cimMethodName,
PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, ise.getMessage()));
PEG_METHOD_EXIT();
return;
}
#endif // #ifdef PEGASUS_ENABLE_USERGROUP_AUTHORIZATION
//
// Get a config manager instance
//
ConfigManager* configManager = ConfigManager::getInstance();
//
// Do namespace authorization verification
//
if (String::equalNoCase(
configManager->getCurrentValue("enableNamespaceAuthorization"),
"true"))
{
//
// If the user is not privileged, perform the authorization check.
//
#if !defined(PEGASUS_PLATFORM_OS400_ISERIES_IBM)
if ( ! System::isPrivilegedUser(userName) )
#else
// On OS/400, always check authorization if remote user.
// Always allow local privileged users through.
// Check authorization for local non-privileged users.
// (User authorization to providers are checked downstream from here).
if ( ! String::equalNoCase(authType,"Local") ||
! System::isPrivilegedUser(userName) )
#endif
{
UserManager* userManager = UserManager::getInstance();
if ( !userManager || !userManager->verifyAuthorization(
userName, nameSpace, cimMethodName) )
{
// l10n
// String description = "Not authorized to run ";
// description.append(cimMethodName);
// description.append(" in the namespace ");
// description.append(nameSpace.getString());
if (cimMethodName == "InvokeMethod")
{
// l10n