(file) Return to UserFileHandler.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Security / UserManager

Diff for /pegasus/src/Pegasus/Security/UserManager/UserFileHandler.cpp between version 1.19 and 1.31

version 1.19, 2005/02/05 23:00:47 version 1.31, 2008/12/01 17:51:15
Line 1 
Line 1 
 //%2005////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development  // Licensed to The Open Group (TOG) under one or more contributor license
 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.  // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;  // this work for additional information regarding copyright ownership.
 // IBM Corp.; EMC Corporation, The Open Group.  // Each contributor licenses this file to you under the OpenPegasus Open
 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;  // Source License; you may not use this file except in compliance with the
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.  // License.
 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;  //
 // EMC Corporation; VERITAS Software Corporation; The Open Group.  // Permission is hereby granted, free of charge, to any person obtaining a
 //  // copy of this software and associated documentation files (the "Software"),
 // Permission is hereby granted, free of charge, to any person obtaining a copy  // to deal in the Software without restriction, including without limitation
 // of this software and associated documentation files (the "Software"), to  // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 // deal in the Software without restriction, including without limitation the  // and/or sell copies of the Software, and to permit persons to whom the
 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  // Software is furnished to do so, subject to the following conditions:
 // sell copies of the Software, and to permit persons to whom the Software is  //
 // furnished to do so, subject to the following conditions:  // The above copyright notice and this permission notice shall be included
 //  // in all copies or substantial portions of the Software.
 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN  //
 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT  // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //  //
 //==============================================================================  //////////////////////////////////////////////////////////////////////////
 //  
 // Author: Sushma Fernandes, Hewlett Packard Company (sushma_fernandes@hp.com)  
 //  
 // Modified By:  
 //              Amit K Arora, IBM (amita@in.ibm.com) for PEP#101  
 //              Josephine Eskaline Joyce (jojustin@in.ibm.com) for PEP#101  
 //              Josephine Eskaline Joyce (jojustin@in.ibm.com) for Bug#2486  
 // //
 //%//////////////////////////////////////////////////////////////////////////// //%////////////////////////////////////////////////////////////////////////////
  
Line 52 
Line 45 
  
 #include <Pegasus/Security/UserManager/UserFileHandler.h> #include <Pegasus/Security/UserManager/UserFileHandler.h>
 #include <Pegasus/Security/UserManager/UserExceptions.h> #include <Pegasus/Security/UserManager/UserExceptions.h>
 #include <Pegasus/Common/MessageLoader.h> //l10n  #include <Pegasus/Common/MessageLoader.h>
  
 PEGASUS_USING_STD; PEGASUS_USING_STD;
  
Line 132 
Line 125 
     //     //
     // Load the user information in to the cache.     // Load the user information in to the cache.
     //     //
     try  
     {  
         _loadAllUsers();         _loadAllUsers();
     }  
     catch  (Exception& e)  
     {  
         throw e;  
     }  
  
     //     //
     // Initialize the mutex, mutex lock needs to be held for any updates     // Initialize the mutex, mutex lock needs to be held for any updates
Line 195 
Line 181 
     // at any given time     // at any given time
     //     //
  
     try      if (!_mutex->timed_lock(_MUTEX_TIMEOUT))
     {  
         _mutex->timed_lock(_MUTEX_TIMEOUT, pegasus_thread_self());  
     }  
     catch (TimeOut&)  
     {     {
         //l10n          throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
         //throw PEGASUS_CIM_EXCEPTION( CIM_ERR_FAILED,              MessageLoaderParms(
         //"Timed out trying to perform requested operation."                  "Security.UserManager.UserFileHandler.TIMEOUT",
         //"Please re-try the operation again.");                  "Timed out while attempting to perform the requested "
         throw PEGASUS_CIM_EXCEPTION_L( CIM_ERR_FAILED, MessageLoaderParms("Security.UserManager.UserFileHandler.TIMEOUT",                      "operation. Try the operation again."));
                                                                         "Timed out trying to perform requested operation.Please re-try the operation again."));  
     }  
     catch (WaitFailed&)  
     {  
     //l10n  
         //throw PEGASUS_CIM_EXCEPTION( CIM_ERR_FAILED,  
         //"Timed out trying to perform requested operation."  
         //"Please re-try the operation again.");  
         throw PEGASUS_CIM_EXCEPTION_L( CIM_ERR_FAILED, MessageLoaderParms("Security.UserManager.UserFileHandler.TIMEOUT",  
                                                                         "Timed out trying to perform requested operation.Please re-try the operation again."));  
     }  
     catch (Deadlock&)  
     {  
     //l10n  
         //throw PEGASUS_CIM_EXCEPTION( CIM_ERR_FAILED,  
         //"Deak lock encountered trying to perform requested operation."  
         //"Please re-try the operation again.");  
         throw PEGASUS_CIM_EXCEPTION_L( CIM_ERR_FAILED, MessageLoaderParms("Security.UserManager.UserFileHandler.DEADLOCK",  
                                                 "Deak lock encountered trying to perform requested operation.Please re-try the operation again."));  
     }     }
  
     switch (operation)     switch (operation)
Line 248 
Line 211 
                 if (!_passwordTable.insert(userName,password))                 if (!_passwordTable.insert(userName,password))
                 {                 {
                     _mutex->unlock();                     _mutex->unlock();
                     //l10n                      Logger::put_l(
                     //Logger::put(Logger::ERROR_LOG, System::CIMSERVER,                          Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,
                                         //Logger::SEVERE,                          MessageLoaderParms(
                                         //"Error updating user information for : $0.",userName);                              "Security.UserManager.UserFileHandler."
                                         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER,Logger::SEVERE,                                  "ERROR_UPDATING_USER_INFO",
                                                 "Security.UserManager.UserFileHandler.ERROR_UPDATING_USER_INFO",                              "Error updating the user information for user $0.",
                                                 "Error updating user information for : $0.",userName);                              userName));
                     PEG_METHOD_EXIT();                     PEG_METHOD_EXIT();
                     throw PasswordCacheError();                     throw PasswordCacheError();
                 }                 }
Line 281 
Line 244 
     {     {
         _passwordFile->save(_passwordTable);         _passwordFile->save(_passwordTable);
     }     }
     catch (CannotOpenFile& e)      catch (const CannotOpenFile&)
     {     {
         _mutex->unlock();         _mutex->unlock();
         PEG_METHOD_EXIT();         PEG_METHOD_EXIT();
         throw e;          throw;
     }     }
     catch (CannotRenameFile& e)      catch (const CannotRenameFile&)
     {     {
         //         //
         // reload password hash table from file         // reload password hash table from file
Line 296 
Line 259 
  
         _mutex->unlock();         _mutex->unlock();
         PEG_METHOD_EXIT();         PEG_METHOD_EXIT();
         throw e;          throw;
     }     }
     _mutex->unlock();     _mutex->unlock();
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
Line 311 
Line 274 
                             const String& password)                             const String& password)
 { {
     char        salt[3];     char        salt[3];
     String      encryptedPassword = String::EMPTY;      String encryptedPassword;
  
     PEG_METHOD_ENTER(TRC_USER_MANAGER, "UserFileHandler::addUserEntry");     PEG_METHOD_ENTER(TRC_USER_MANAGER, "UserFileHandler::addUserEntry");
  
Line 342 
Line 305 
              const String& newPassword )              const String& newPassword )
 { {
     char        salt[3];     char        salt[3];
     String      encryptedPassword = String::EMPTY;      String encryptedPassword;
  
     PEG_METHOD_ENTER(TRC_USER_MANAGER, "UserFileHandler::modifyUserEntry");     PEG_METHOD_ENTER(TRC_USER_MANAGER, "UserFileHandler::modifyUserEntry");
  
     //     //
     // Check if the given password matches the passwd in the file     // Check if the given password matches the passwd in the file
     //     //
     try  
     {  
         if ( !verifyCIMUserPassword (userName,password) )         if ( !verifyCIMUserPassword (userName,password) )
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
             throw PasswordMismatch(userName);             throw PasswordMismatch(userName);
         }         }
     }  
     catch (Exception& e)  
     {  
         PEG_METHOD_EXIT();  
         throw e;  
     }  
  
     // encrypt new password     // encrypt new password
     _GetSalt(salt);     _GetSalt(salt);
Line 423 
Line 378 
                      "UserFileHandler::verifyCIMUserPassword");                      "UserFileHandler::verifyCIMUserPassword");
  
     // Check if the user's password mathches the specified password     // Check if the user's password mathches the specified password
     String curPassword          = String::EMPTY;      String curPassword;
     String encryptedPassword    = String::EMPTY;      String encryptedPassword;
     String saltStr              = String::EMPTY;      String saltStr;
  
     // Check if the user exists in the password table     // Check if the user exists in the password table
     if ( !_passwordTable.lookup(userName,curPassword) )     if ( !_passwordTable.lookup(userName,curPassword) )


Legend:
Removed from v.1.19  
changed lines
  Added in v.1.31

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2