(file) Return to PAMBasicAuthenticator.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Security / Authentication

Diff for /pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h between version 1.2 and 1.11

version 1.2, 2002/04/16 01:59:14 version 1.11, 2004/03/23 03:06:31
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2003////////////////////////////////////////////////////////////////////////
 //  
 // Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM,  
 // The Open Group, Tivoli Systems  
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a  // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development
 // copy of this software and associated documentation files (the "Software"),  // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
 // to deal in the Software without restriction, including without limitation  // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
 // the rights to use, copy, modify, merge, publish, distribute, sublicense,  // IBM Corp.; EMC Corporation, The Open Group.
 // and/or sell copies of the Software, and to permit persons to whom the  //
 // Software is furnished to do so, subject to the following conditions:  // Permission is hereby granted, free of charge, to any person obtaining a copy
 //  // of this software and associated documentation files (the "Software"), to
 // The above copyright notice and this permission notice shall be included in  // deal in the Software without restriction, including without limitation the
 // all copies of substantial portions of this software.  // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 //  // sell copies of the Software, and to permit persons to whom the Software is
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  // furnished to do so, subject to the following conditions:
 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  //
 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 // DEALINGS IN THE SOFTWARE.  // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
   // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
   // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
   // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 // //
 //============================================================================== //==============================================================================
 // //
 // Author: Nag Boranna, Hewlett-Packard Company(nagaraja_boranna@hp.com) // Author: Nag Boranna, Hewlett-Packard Company(nagaraja_boranna@hp.com)
 // //
 // Modified By:  // Modified By: Yi Zhou, Hewlett-Packard Company(yi_zhou@hp.com)
   //              Sushma Fernandes, Hewlett-Packard Company
   //                  (sushma_fernandes@hp.com)
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #ifndef Pegasus_PAMBasicAuthenticator_h #ifndef Pegasus_PAMBasicAuthenticator_h
 #define Pegasus_PAMBasicAuthenticator_h #define Pegasus_PAMBasicAuthenticator_h
  
 #include <security/pam_appl.h>  
   
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
   #include <Pegasus/Common/IPC.h>
 #include "BasicAuthenticator.h" #include "BasicAuthenticator.h"
 #include "Linkage.h"  
   
   #include <Pegasus/Security/Authentication/Linkage.h>
  
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
   /** This class provides PAM basic authentication by communicating with a
       standalone process.
   */
   
   #if defined(PEGASUS_USE_PAM_STANDALONE_PROC)
   
   class PEGASUS_SECURITY_LINKAGE PAMBasicAuthenticatorStandAlone
   {
   public:
   
       /** constructor. */
       PAMBasicAuthenticatorStandAlone();
   
       /** destructor. */
       ~PAMBasicAuthenticatorStandAlone();
   
       /** Verify the authentication of the requesting user.
           @param userName String containing the user name
           @param password String containing the user password
           @return true on successful authentication, false otherwise
       */
       Boolean authenticate(
           const String& userName,
           const String& password);
   
   private:
       /**
           A mutex to serialize authentication calls.
       */
       static Mutex  _authSerializeMutex;
   
       String        _realm;
   
       Boolean _authenticateByPAM(
           const String& userName,
           const String& password);
   
       void _createPAMStandalone();
   };
   
   #endif /* if defined(PEGASUS_USE_PAM_STANDALONE_PROC) */
   
 /** This class provides PAM basic authentication implementation by extending /** This class provides PAM basic authentication implementation by extending
     the BasicAuthenticator.     the BasicAuthenticator.
 */ */
Line 77 
Line 122 
     */     */
     static Sint32 PAMCallback(     static Sint32 PAMCallback(
         Sint32 num_msg,         Sint32 num_msg,
   #if defined (PEGASUS_OS_LINUX) && defined(PEGASUS_PAM_AUTHENTICATION)
   
           const struct pam_message **msg,
   #else
         struct pam_message **msg,         struct pam_message **msg,
   #endif
         struct pam_response **resp,         struct pam_response **resp,
         void *appdata_ptr);         void *appdata_ptr);
  
 private: private:
       /**
           A mutex to serialize authentication calls.
       */
       static Mutex  _authSerializeMutex;
  
     String        _realm;     String        _realm;
   
       Boolean _authenticateByPAM(
           const String& userName,
           const String& password);
   
   #if defined (PEGASUS_OS_HPUX) || defined (PEGASUS_PLATFORM_LINUX_GENERIC_GNU)
       Boolean     _usePAM;
   
       Boolean _authenticateByPwnam(
           const char* userName,
           const String& password);
   
       PAMBasicAuthenticatorStandAlone* _pamBasicAuthenticatorStandAlone;
   #endif
 }; };
  
  


Legend:
Removed from v.1.2  
changed lines
  Added in v.1.11

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2