(file) Return to CIMOperationRequestAuthorizer.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Server

  1 kumpf 1.1 //%/////////////////////////////////////////////////////////////////////////////
  2           //
  3 kumpf 1.17 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
  4 kumpf 1.1  // The Open Group, Tivoli Systems
  5            //
  6            // Permission is hereby granted, free of charge, to any person obtaining a copy
  7            // of this software and associated documentation files (the "Software"), to
  8            // deal in the Software without restriction, including without limitation the
  9            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 10            // sell copies of the Software, and to permit persons to whom the Software is
 11            // furnished to do so, subject to the following conditions:
 12 kumpf 1.17 // 
 13 kumpf 1.1  // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 14            // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 15            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 16            // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 17            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 18            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 19            // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 20            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 21            //
 22            //==============================================================================
 23            //
 24            // Author:  Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
 25            //
 26 kumpf 1.4  // Modified By: Sushma Fernandes, Hewlett-Packard Company
 27            //		(sushma_fernandes@hp.com)
 28 kumpf 1.18 //              Carol Ann Krug Graves, Hewlett-Packard Company
 29            //                (carolann_graves@hp.com)
 30 kumpf 1.20 //              Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)
 31 kumpf 1.1  //
 32            //%/////////////////////////////////////////////////////////////////////////////
 33            
 34 sage  1.2  #include <Pegasus/Common/Config.h>
 35 kumpf 1.9  #include <Pegasus/Common/Constants.h>
 36 kumpf 1.1  #include <Pegasus/Security/UserManager/UserManager.h>
 37            #include <Pegasus/Common/HTTPMessage.h>
 38            #include <Pegasus/Common/Destroyer.h>
 39            #include <Pegasus/Common/XmlWriter.h>
 40            #include <Pegasus/Common/Tracer.h>
 41            #include "CIMOperationRequestAuthorizer.h"
 42            
 43 mday  1.23.4.2 // l10n
 44                #include <Pegasus/Common/MessageLoader.h>
 45                
 46 kumpf 1.1      PEGASUS_NAMESPACE_BEGIN
 47                
 48                PEGASUS_USING_STD;
 49                
 50                
 51                CIMOperationRequestAuthorizer::CIMOperationRequestAuthorizer(
 52 mday  1.16        MessageQueueService* outputQueue)
 53 mday  1.5         :
 54 kumpf 1.13        Base(PEGASUS_QUEUENAME_OPREQAUTHORIZER),
 55 mday  1.3         _outputQueue(outputQueue),
 56                   _serverTerminating(false)
 57 kumpf 1.1      {
 58 kumpf 1.10        PEG_METHOD_ENTER(TRC_SERVER, "CIMOperationRequestAuthorizer::"
 59                                    "CIMOperationRequestAuthorizer");
 60 kumpf 1.1      
 61 kumpf 1.10        PEG_METHOD_EXIT();
 62 kumpf 1.1      }
 63                
 64                CIMOperationRequestAuthorizer::~CIMOperationRequestAuthorizer()
 65                {
 66 kumpf 1.10        PEG_METHOD_ENTER(TRC_SERVER, "CIMOperationRequestAuthorizer::"
 67                                    "~CIMOperationRequestAuthorizer");
 68 kumpf 1.1      
 69 kumpf 1.10        PEG_METHOD_EXIT();
 70 kumpf 1.1      }
 71                
 72                void CIMOperationRequestAuthorizer::sendResponse(
 73 mday  1.5         Uint32 queueId,
 74                   Array<Sint8>& message)
 75 kumpf 1.1      {
 76 kumpf 1.10        PEG_METHOD_ENTER(TRC_SERVER, "CIMOperationRequestAuthorizer::sendResponse");
 77 kumpf 1.1      
 78 mday  1.5         MessageQueue* queue = MessageQueue::lookup(queueId);
 79 kumpf 1.1      
 80 mday  1.5         if (queue)
 81                   {
 82                      HTTPMessage* httpMessage = new HTTPMessage(message);
 83                      queue->enqueue(httpMessage);
 84                   }
 85 kumpf 1.10        PEG_METHOD_EXIT();
 86 kumpf 1.1      }
 87                
 88 kumpf 1.7      // Code is duplicated in CIMOperationRequestDecoder
 89                void CIMOperationRequestAuthorizer::sendIMethodError(
 90 mday  1.5         Uint32 queueId,
 91 kumpf 1.19        HttpMethod httpMethod,
 92 mday  1.5         const String& messageId,
 93 kumpf 1.18        const CIMName& iMethodName,
 94 kumpf 1.12        const CIMException& cimException)
 95 kumpf 1.1      {
 96 kumpf 1.10         PEG_METHOD_ENTER(TRC_SERVER,
 97                                     "CIMOperationRequestAuthorizer::sendIMethodError");
 98 kumpf 1.1      
 99 kumpf 1.7          Array<Sint8> message;
100 kumpf 1.8          message = XmlWriter::formatSimpleIMethodErrorRspMessage(
101                        iMethodName,
102                        messageId,
103 kumpf 1.19             httpMethod,
104 kumpf 1.12             cimException);
105 kumpf 1.7      
106 kumpf 1.8          sendResponse(queueId, message);
107 kumpf 1.1      
108 kumpf 1.10         PEG_METHOD_EXIT();
109 kumpf 1.1      }
110                
111 kumpf 1.23     // Code is duplicated in CIMOperationRequestDecoder
112                void CIMOperationRequestAuthorizer::sendMethodError(
113                   Uint32 queueId,
114                   HttpMethod httpMethod,
115                   const String& messageId,
116                   const CIMName& methodName,
117                   const CIMException& cimException)
118                {
119                    PEG_METHOD_ENTER(TRC_SERVER,
120                                     "CIMOperationRequestAuthorizer::sendMethodError");
121                
122                    Array<Sint8> message;
123                    message = XmlWriter::formatSimpleMethodErrorRspMessage(
124                        methodName,
125                        messageId,
126                        httpMethod,
127                        cimException);
128                
129                    sendResponse(queueId, message);
130                
131                    PEG_METHOD_EXIT();
132 kumpf 1.23     }
133                
134 kumpf 1.1      ////////////////////////////////////////////////////////////////////////////////
135                
136 mday  1.5      
137                void CIMOperationRequestAuthorizer::handleEnqueue(Message *request)
138 kumpf 1.1      {
139                
140 kumpf 1.10        PEG_METHOD_ENTER(TRC_SERVER, "CIMOperationRequestAuthorizer::handleEnqueue");
141 mday  1.5      
142                   if (!request)
143                   {
144 kumpf 1.10           PEG_METHOD_EXIT();
145 mday  1.5            return;
146                   }
147                
148                   //
149                   // Get the HTTPConnection queue id
150                   //
151                   QueueIdStack qis = ((CIMRequestMessage*)request)->queueIds.copyAndPop();
152                
153                   Uint32 queueId = qis.top();
154                
155 mday  1.23.4.1 // l10n
156                   // Set the client's requested language into this service thread.
157                   // This will allow functions in this service to return messages
158                   // in the correct language.
159                   CIMMessage * req = dynamic_cast<CIMMessage *>(request);
160                   if (req != NULL)
161                   {
162                	   AcceptLanguages *langs = 
163                   			new AcceptLanguages(req->acceptLanguages);	
164                	   Thread::setLanguages(langs);   		
165                   }
166                   else
167                   {
168                   		Thread::clearLanguages();
169                   }
170                
171 kumpf 1.12        //
172                   // If CIMOM is shutting down, return "Service Unavailable" response
173                   //
174                   if (_serverTerminating)
175                   {
176                       Array<Sint8> message;
177                       message = XmlWriter::formatHttpErrorRspMessage(
178                           HTTP_STATUS_SERVICEUNAVAILABLE,
179                           String::EMPTY,
180 kumpf 1.14                "CIM Server is shutting down.");
181 kumpf 1.12     
182                       sendResponse(queueId, message);
183                       PEG_METHOD_EXIT();
184                       return;
185                   }
186                
187 mday  1.5         String userName = String::EMPTY;
188                   String authType = String::EMPTY;
189 kumpf 1.18        CIMNamespaceName nameSpace;
190 mday  1.5         String cimMethodName = String::EMPTY;
191                
192                   switch (request->getType())
193                   {
194                      case CIM_GET_CLASS_REQUEST_MESSAGE:
195                	 userName = ((CIMGetClassRequestMessage*)request)->userName;
196                	 authType = 
197                	    ((CIMGetClassRequestMessage*)request)->authType;
198                	 nameSpace = ((CIMGetClassRequestMessage*)request)->nameSpace;
199                	 cimMethodName = "GetClass";
200                	 break;
201                
202                      case CIM_GET_INSTANCE_REQUEST_MESSAGE:
203                	 userName = ((CIMGetInstanceRequestMessage*)request)->userName;
204                	 authType = 
205                	    ((CIMGetInstanceRequestMessage*)request)->authType;
206                	 nameSpace = ((CIMGetInstanceRequestMessage*)request)->nameSpace;
207                	 cimMethodName = "GetInstance";
208                	 break;
209                
210                      case CIM_DELETE_CLASS_REQUEST_MESSAGE:
211 mday  1.5      	 userName = ((CIMDeleteClassRequestMessage*)request)->userName;
212                	 authType = 
213                	    ((CIMDeleteClassRequestMessage*)request)->authType;
214                	 nameSpace = ((CIMDeleteClassRequestMessage*)request)->nameSpace;
215                	 cimMethodName = "DeleteClass";
216                	 break;
217                
218                      case CIM_DELETE_INSTANCE_REQUEST_MESSAGE:
219                	 userName = ((CIMDeleteInstanceRequestMessage*)request)->userName;
220                	 authType = 
221                	    ((CIMDeleteInstanceRequestMessage*)request)->authType;
222                	 nameSpace = ((CIMDeleteInstanceRequestMessage*)request)->nameSpace;
223                	 cimMethodName = "DeleteInstance";
224                	 break;
225                
226                      case CIM_CREATE_CLASS_REQUEST_MESSAGE:
227                	 userName = ((CIMCreateClassRequestMessage*)request)->userName;
228                	 authType = 
229                	    ((CIMCreateClassRequestMessage*)request)->authType;
230                	 nameSpace = ((CIMCreateClassRequestMessage*)request)->nameSpace;
231                	 cimMethodName = "CreateClass";
232 mday  1.5      	 break;
233                
234                      case CIM_CREATE_INSTANCE_REQUEST_MESSAGE:
235                	 userName = ((CIMCreateInstanceRequestMessage*)request)->userName;
236                	 authType = 
237                	    ((CIMCreateInstanceRequestMessage*)request)->authType;
238                	 nameSpace = ((CIMCreateInstanceRequestMessage*)request)->nameSpace;
239                	 cimMethodName = "CreateInstance";
240                	 break;
241                
242                      case CIM_MODIFY_CLASS_REQUEST_MESSAGE:
243                	 userName = ((CIMModifyClassRequestMessage*)request)->userName;
244                	 authType = 
245                	    ((CIMModifyClassRequestMessage*)request)->authType;
246                	 nameSpace = ((CIMModifyClassRequestMessage*)request)->nameSpace;
247                	 cimMethodName = "ModifyClass";
248                	 break;
249                
250                      case CIM_MODIFY_INSTANCE_REQUEST_MESSAGE:
251                	 userName = ((CIMModifyInstanceRequestMessage*)request)->userName;
252                	 authType = 
253 mday  1.5      	    ((CIMModifyInstanceRequestMessage*)request)->authType;
254                	 nameSpace = ((CIMModifyInstanceRequestMessage*)request)->nameSpace;
255                	 cimMethodName = "ModifyInstance";
256                	 break;
257                
258                      case CIM_ENUMERATE_CLASSES_REQUEST_MESSAGE:
259                	 userName = ((CIMEnumerateClassesRequestMessage*)request)->userName;
260                	 authType = ((CIMEnumerateClassesRequestMessage*)request)->authType;
261                	 nameSpace = ((CIMEnumerateClassesRequestMessage*)request)->nameSpace;
262                	 cimMethodName = "EnumerateClasses";
263                	 break;
264                
265                      case CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE:
266                	 userName = ((CIMEnumerateClassNamesRequestMessage*)request)->userName;
267                	 authType = 
268                	    ((CIMEnumerateClassNamesRequestMessage*)request)->authType;
269                	 nameSpace = ((CIMEnumerateClassNamesRequestMessage*)request)->nameSpace;
270                	 cimMethodName = "EnumerateClassNames";
271                	 break;
272                
273                      case CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE:
274 mday  1.5      	 userName = ((CIMEnumerateInstancesRequestMessage*)request)->userName;
275                	 authType = ((CIMEnumerateInstancesRequestMessage*)request)->authType;
276                	 nameSpace = ((CIMEnumerateInstancesRequestMessage*)request)->nameSpace;
277                	 cimMethodName = "EnumerateInstances";
278                	 break;
279                
280                      case CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE:
281                	 userName = ((CIMEnumerateInstanceNamesRequestMessage*)request)->userName;
282                	 authType = ((CIMEnumerateInstanceNamesRequestMessage*)request)->authType;
283                	 nameSpace = ((CIMEnumerateInstanceNamesRequestMessage*)request)->nameSpace;
284                	 cimMethodName = "EnumerateInstanceNames";
285                	 break;
286                
287                      case CIM_EXEC_QUERY_REQUEST_MESSAGE:
288 kumpf 1.11     	 userName = ((CIMExecQueryRequestMessage*)request)->userName;
289                	 authType = ((CIMExecQueryRequestMessage*)request)->authType;
290                	 nameSpace = ((CIMExecQueryRequestMessage*)request)->nameSpace;
291                	 cimMethodName = "ExecQuery";
292 mday  1.5      	 break;
293                
294                      case CIM_ASSOCIATORS_REQUEST_MESSAGE:
295                	 userName = ((CIMAssociatorsRequestMessage*)request)->userName;
296                	 authType = ((CIMAssociatorsRequestMessage*)request)->authType;
297                	 nameSpace = ((CIMAssociatorsRequestMessage*)request)->nameSpace;
298                	 cimMethodName = "Associators";
299                	 break;
300                
301                      case CIM_ASSOCIATOR_NAMES_REQUEST_MESSAGE:
302                	 userName = ((CIMAssociatorNamesRequestMessage*)request)->userName;
303                	 authType = ((CIMAssociatorNamesRequestMessage*)request)->authType;
304                	 nameSpace = ((CIMAssociatorNamesRequestMessage*)request)->nameSpace;
305                	 cimMethodName = "AssociatorNames";
306                	 break;
307                
308                      case CIM_REFERENCES_REQUEST_MESSAGE:
309                	 userName = ((CIMReferencesRequestMessage*)request)->userName;
310                	 authType = ((CIMReferencesRequestMessage*)request)->authType;
311                	 nameSpace = ((CIMReferencesRequestMessage*)request)->nameSpace;
312                	 cimMethodName = "References";
313 mday  1.5      	 break;
314                
315                      case CIM_REFERENCE_NAMES_REQUEST_MESSAGE:
316                	 userName = ((CIMReferenceNamesRequestMessage*)request)->userName;
317                	 authType = ((CIMReferenceNamesRequestMessage*)request)->authType;
318                	 nameSpace = ((CIMReferenceNamesRequestMessage*)request)->nameSpace;
319                	 cimMethodName = "ReferenceNames";
320                	 break;
321                
322                      case CIM_GET_PROPERTY_REQUEST_MESSAGE:
323                	 userName = ((CIMGetPropertyRequestMessage*)request)->userName;
324                	 authType = ((CIMGetPropertyRequestMessage*)request)->authType;
325                	 nameSpace = ((CIMGetPropertyRequestMessage*)request)->nameSpace;
326                	 cimMethodName = "GetProperty";
327                	 break;
328                
329                      case CIM_SET_PROPERTY_REQUEST_MESSAGE:
330                	 userName = ((CIMSetPropertyRequestMessage*)request)->userName;
331                	 authType = ((CIMSetPropertyRequestMessage*)request)->authType;
332                	 nameSpace = ((CIMSetPropertyRequestMessage*)request)->nameSpace;
333                	 cimMethodName = "SetProperty";
334 mday  1.5      	 break;
335                
336                      case CIM_GET_QUALIFIER_REQUEST_MESSAGE:
337                	 userName = ((CIMGetQualifierRequestMessage*)request)->userName;
338                	 authType = ((CIMGetQualifierRequestMessage*)request)->authType;
339                	 nameSpace = ((CIMGetQualifierRequestMessage*)request)->nameSpace;
340                	 cimMethodName = "GetQualifier";
341                	 break;
342                
343                      case CIM_SET_QUALIFIER_REQUEST_MESSAGE:
344                	 userName = ((CIMSetQualifierRequestMessage*)request)->userName;
345                	 authType = ((CIMSetQualifierRequestMessage*)request)->authType;
346                	 nameSpace = ((CIMSetQualifierRequestMessage*)request)->nameSpace;
347                	 cimMethodName = "SetQualifier";
348                	 break;
349                
350                      case CIM_DELETE_QUALIFIER_REQUEST_MESSAGE:
351                	 userName = ((CIMDeleteQualifierRequestMessage*)request)->userName;
352                	 authType = ((CIMDeleteQualifierRequestMessage*)request)->authType;
353                	 nameSpace = ((CIMDeleteQualifierRequestMessage*)request)->nameSpace;
354                	 cimMethodName = "DeleteQualifier";
355 mday  1.5      	 break;
356                
357                      case CIM_ENUMERATE_QUALIFIERS_REQUEST_MESSAGE:
358                	 userName = ((CIMEnumerateQualifiersRequestMessage*)request)->userName;
359                	 authType = ((CIMEnumerateQualifiersRequestMessage*)request)->authType;
360                	 nameSpace = ((CIMEnumerateQualifiersRequestMessage*)request)->nameSpace;
361                	 cimMethodName = "EnumerateQualifiers";
362                	 break;
363                
364                      case CIM_INVOKE_METHOD_REQUEST_MESSAGE:
365                	 userName = ((CIMInvokeMethodRequestMessage*)request)->userName;
366                	 authType = ((CIMInvokeMethodRequestMessage*)request)->authType;
367                	 nameSpace = ((CIMInvokeMethodRequestMessage*)request)->nameSpace;
368                	 cimMethodName = "InvokeMethod";
369                	 break;
370                
371                      default:
372                	 break;
373                   }
374                
375                   //
376 kumpf 1.22        // Get a config manager instance
377 mday  1.5         //
378                   ConfigManager* configManager = ConfigManager::getInstance();
379                
380                   //
381 kumpf 1.22        // Do namespace authorization verification
382 mday  1.5         //
383 kumpf 1.22        if (String::equalNoCase(
384                          configManager->getCurrentValue("enableNamespaceAuthorization"),
385                          "true"))
386                   {
387                      //
388                      // If the user is not privileged, perform the authorization check.
389                      //
390 chuck 1.21     #if !defined(PEGASUS_PLATFORM_OS400_ISERIES_IBM)
391 kumpf 1.22           if ( ! System::isPrivilegedUser(userName) )
392 chuck 1.21     #else
393 kumpf 1.22           // On OS/400, always check authorization if remote user.
394                      // Always allow local privileged users through.
395                      // Check authorization for local non-privileged users.
396                      // (User authorization to providers are checked downstream from here).
397                      if ( ! String::equalNoCase(authType,"Local") ||
398                           ! System::isPrivilegedUser(userName) )
399 chuck 1.21     #endif
400 mday  1.5            {
401 kumpf 1.22              UserManager* userManager = UserManager::getInstance();
402 mday  1.5      
403 kumpf 1.22              if ( !userManager || !userManager->verifyAuthorization(
404                                 userName, nameSpace, cimMethodName) )
405                         {
406 mday  1.23.4.2 
407                	   // l10n
408                	   
409                           // String description = "Not authorized to run ";
410                           // description.append(cimMethodName);
411                           // description.append(" in the namespace ");
412                           // description.append(nameSpace.getString());
413 kumpf 1.22     
414 kumpf 1.23                 if (cimMethodName == "InvokeMethod")
415                            {
416 mday  1.23.4.2 	      // l10n
417                	      sendMethodError(
418 kumpf 1.23                       queueId,
419                                  request->getHttpMethod(),
420                                  ((CIMRequestMessage*)request)->messageId,
421                                  ((CIMInvokeMethodRequestMessage*)request)->methodName,
422 mday  1.23.4.2                   PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED, 
423                					MessageLoaderParms(
424                					 "Server.CIMOperationRequestAuthorizer.NOT_AUTHORIZED", 
425                					 "Not authorized to run $0 in the namespace $1", 
426                					   cimMethodName, nameSpace.getString())));
427                               // sendMethodError(
428                	       // queueId,
429                	       // request->getHttpMethod(),
430                	       // ((CIMRequestMessage*)request)->messageId,
431                	       // ((CIMInvokeMethodRequestMessage*)request)->methodName,
432                	       // PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, description));
433 kumpf 1.23                 }
434                            else
435                            {
436 mday  1.23.4.2 	      // l10n
437                	      sendIMethodError(
438                			       queueId,
439                			       request->getHttpMethod(),
440                			       ((CIMRequestMessage*)request)->messageId,
441                			       cimMethodName,
442                			       PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED, 
443                					MessageLoaderParms(
444                					 "Server.CIMOperationRequestAuthorizer.NOT_AUTHORIZED", 
445                					 "Not authorized to run $0 in the namespace $1", 
446                					   cimMethodName, nameSpace.getString())));
447                
448                	      // sendIMethodError(
449                	      //  queueId,
450                	      //  request->getHttpMethod(),
451                	      //  ((CIMRequestMessage*)request)->messageId,
452                	      //  cimMethodName,
453                	      //  PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, description));
454 kumpf 1.23                 }
455 mday  1.5      
456 kumpf 1.22                 PEG_METHOD_EXIT();
457                
458                            return;
459                         }
460 mday  1.5            }
461                   }
462 kumpf 1.22     
463 mday  1.5         //
464                   // If the user is privileged, and remote privileged user access is not 
465 kumpf 1.22        // enabled and the auth type is not Local then reject access.
466 mday  1.5         //
467 kumpf 1.22        if ( System::isPrivilegedUser(userName) &&
468                        !String::equalNoCase(authType, "Local") &&
469                        !String::equalNoCase(
470                           configManager->getCurrentValue("enableRemotePrivilegedUserAccess"),
471                           "true") )
472 mday  1.5         {
473                
474 kumpf 1.23           if (cimMethodName == "InvokeMethod")
475                      {
476 mday  1.23.4.2 
477                	// l10n
478                
479 kumpf 1.23              sendMethodError(
480                            queueId,
481                            request->getHttpMethod(),
482                            ((CIMRequestMessage*)request)->messageId,
483                            ((CIMInvokeMethodRequestMessage*)request)->methodName,
484 mday  1.23.4.2             PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED, MessageLoaderParms(
485                                                 "Server.CIMOperationRequestAuthorizer.REMOTE_NOT_ENABLED", "Remote privileged user access is not enabled.")));
486                
487                         // sendMethodError(
488                	 //  queueId,
489                	 //  request->getHttpMethod(),
490                	 //  ((CIMRequestMessage*)request)->messageId,
491                	 //  ((CIMInvokeMethodRequestMessage*)request)->methodName,
492                	 //  PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, "Remote privileged user access is not enabled."));
493 kumpf 1.23           }
494                      else
495                      {
496 mday  1.23.4.2 	// l10n
497                
498 kumpf 1.23              sendIMethodError(
499                            queueId,
500                            request->getHttpMethod(),
501                            ((CIMRequestMessage*)request)->messageId,
502                            cimMethodName,
503 mday  1.23.4.2             PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED, MessageLoaderParms(
504                                                 "Server.CIMOperationRequestAuthorizer.REMOTE_NOT_ENABLED", "Remote privileged user access is not enabled.")));
505                
506                         // sendIMethodError(
507                	 // queueId,
508                	 //  request->getHttpMethod(),
509                	 //  ((CIMRequestMessage*)request)->messageId,
510                	 //  cimMethodName,
511                	 //  PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, "Remote privileged user access is not enabled."));
512 kumpf 1.23           }
513 mday  1.5      
514 kumpf 1.10           PEG_METHOD_EXIT();
515 mday  1.5      
516                      return;
517                   }
518                
519                   //
520                   // Enqueue the request
521                   //
522                   _outputQueue->enqueue(request);
523                
524 kumpf 1.10        PEG_METHOD_EXIT();
525 kumpf 1.1      
526 mday  1.5      }
527                
528                
529                void CIMOperationRequestAuthorizer::handleEnqueue()
530                {
531 kumpf 1.10        PEG_METHOD_ENTER(TRC_SERVER, "CIMOperationRequestAuthorizer::handleEnqueue");
532                
533 mday  1.5         Message* request = dequeue();
534                   if( request )
535                      handleEnqueue(request);
536 kumpf 1.10     
537                   PEG_METHOD_EXIT();
538 kumpf 1.1      }
539                
540                void CIMOperationRequestAuthorizer::setServerTerminating(Boolean flag)
541                {
542 kumpf 1.10        PEG_METHOD_ENTER(TRC_SERVER,
543                                    "CIMOperationRequestAuthorizer::setServerTerminating");
544 kumpf 1.1      
545 mday  1.5         _serverTerminating = flag;
546 kumpf 1.1      
547 kumpf 1.10        PEG_METHOD_EXIT();
548 kumpf 1.1      }
549                
550                PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2