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

Diff for /pegasus/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp between version 1.65 and 1.66

version 1.65, 2006/08/08 17:47:14 version 1.66, 2006/09/29 17:38:15
Line 292 
Line 292 
        }        }
     }     }
  
   
     //  
     // Check if the request was received on the export connection.  
     // Do not accept CIMOperation requests on the export connection.  
     // Username-password authentication is not done for CIMExport requests  
     // received on the export connection. Instead the client is  
     // authenticated by client certificate verification.  
     //  
     if ( httpMessage->authInfo->isExportConnection() )  
     {  
         //  
         // Do not accept CIMOperation requests on the export connection  
         //  
         String operation;  
   
         if ( HTTPMessage::lookupHeader(  
              headers, _HTTP_HEADER_CIMOPERATION, operation, true) )  
         {  
             //  
             //  CIMOperation requests are not supported on the export connection  
             //  
             MessageLoaderParms msgParms(  
                 "Pegasus.Server.HTTPAuthenticatorDelegator.CIMOPERATIONS_NOT_SUPPORTED",  
                 "CIMOperation request not supported on this port.");  
             String msg(MessageLoader::getMessage(msgParms));  
   
             PEG_METHOD_EXIT();  
             _sendHttpError(  
                 queueId,  
                 HTTP_STATUS_FORBIDDEN,  
                 String::EMPTY,  
                 msg,  
                 closeConnect);  
         }  
   
         //  
         // Do not require user-password authentication for CIMExport requests  
         // received on the export connection. Instead verify that the client  
         // is authenticated by client certificate verification.  
         //  
         if ( HTTPMessage::lookupHeader(  
              headers, _HTTP_HEADER_CIMEXPORT, operation, true) )  
         {  
             PEG_TRACE_STRING(TRC_HTTP, Tracer::LEVEL3,  
                     "CIMExport request received on export connection");  
   
             //  
             // Client may have already authenticated by verifying peer  
             // certificate (in SSLSocket) during SSL handshake.  
             // In this case, no further attempts to authenticate the client are made  
             //  
             if ( httpMessage->authInfo->isAuthenticated() )  
             {  
                 PEG_TRACE_STRING(TRC_HTTP, Tracer::LEVEL4,  
                     "httpMessage->authInfo->isAuthenticated() is true");  
   
                 Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,  
                     "HTTPAuthenticatorDelegator - CIMExport: $0 ", operation);  
   
                 MessageQueue* queue =  
                     MessageQueue::lookup(_exportMessageQueueId);  
   
                 if (queue)  
                 {  
                     httpMessage->dest = queue->getQueueId();  
                     queue->enqueue(httpMessage);  
                     deleteMessage = false;  
                 }  
             }  
             else  
             {  
                 //  
                 // This condition is expected to be handled early on during  
                 // peer certificate verification and it should never come here.  
                 // We will treat this as a bad request if it does come here.  
                 //  
                 PEGASUS_ASSERT(0);  
                 PEG_METHOD_EXIT();  
                 _sendHttpError(  
                     queueId,  
                     HTTP_STATUS_BADREQUEST,  
                     String::EMPTY,  
                     String::EMPTY,  
                     closeConnect);  
             }  
             PEG_METHOD_EXIT();  
             return;  
         }  
     }  
   
     //     //
     // Handle authentication:     // Handle authentication:
     //     //


Legend:
Removed from v.1.65  
changed lines
  Added in v.1.66

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2