LDAP2Vuser.hxx
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. #ifndef LDAP2VUSER_HXX_
  2. #define LDAP2VUSER_HXX_
  3. /* ====================================================================
  4.  * The Vovida Software License, Version 1.0
  5.  *
  6.  * Copyright (c) 1999, 2000 Vovida Networks, Inc.  All rights reserved.
  7.  *
  8.  * Redistribution and use in source and binary forms, with or without
  9.  * modification, are permitted provided that the following conditions
  10.  * are met:
  11.  *
  12.  * 1. Redistributions of source code must retain the above copyright
  13.  *    notice, this list of conditions and the following disclaimer.
  14.  *
  15.  * 2. Redistributions in binary form must reproduce the above copyright
  16.  *    notice, this list of conditions and the following disclaimer in
  17.  *    the documentation and/or other materials provided with the
  18.  *    distribution.
  19.  *
  20.  * 3. The end-user documentation included with the redistribution,
  21.  *    if any, must include the following acknowledgment:
  22.  *       "This product includes software developed by Vovida Networks,
  23.  *        Inc. (http://www.vovida.org/)."
  24.  *    Alternately, this acknowledgment may appear in the software itself,
  25.  *    if and wherever such third-party acknowledgments normally appear.
  26.  *
  27.  * 4. The names "VOCAL", "Vovida Open Communication Application Library",
  28.  *    and "Vovida Open Communication Application Library (VOCAL)" must 
  29.  *    not be used to endorse or promote products derived from this 
  30.  *    software without prior written permission. For written permission, 
  31.  *    please contact vocal@vovida.org.
  32.  *
  33.  * 5. Products derived from this software may not be called "VOCAL",
  34.  *    nor may "VOCAL" appear in their name, without prior written
  35.  *    permission of Vovida Networks, Inc.
  36.  *
  37.  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
  38.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  39.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  40.  * DISCLAIMED.  IN NO EVENT SHALL VOVIDA NETWORKS, INC. OR ITS 
  41.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  42.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  43.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  44.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  45.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  46.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  47.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  48.  * SUCH DAMAGE.
  49.  * ====================================================================
  50.  *
  51.  * This software consists of voluntary contributions made by Vovida 
  52.  * Networks, Inc. and many individuals on behalf of Vovida Networks,
  53.  * Inc.  For more information on Vovida Networks, Inc., please see 
  54.  * <http://www.vovida.org/>.
  55.  *
  56.  */
  57. static const char* const LDAP2Vuser_hxx_Version =
  58.     "$Id: LDAP2Vuser.hxx,v 1.8 2001/01/31 18:02:10 eddiem Exp $";
  59. #include "global.h"
  60. #include <iostream>
  61. #include <lber.h>
  62. #include <ldap.h>
  63. /** Class to export user information from LDAP server into 
  64.     Vocal user format (XML file)
  65. */
  66. class LDAP2Vuser
  67. {
  68.     public:
  69.         /// Constructor - opens connection (authenticated) with LDAP server
  70.         LDAP2Vuser(string &host, unsigned int port, string &basedn, 
  71.                    string &binddn, string &bindpw);
  72.         /// Constructor - opens connection (as nobody) with LDAP server
  73.         LDAP2Vuser(string &host, unsigned int port, string &basedn);
  74.         /// Destructor - unbinds to LDAP server
  75.         virtual ~LDAP2Vuser();
  76.         /// Set LDAP search size limit
  77.         void setSizelimit(int szlimit);
  78.         /// Get LDAP search size limit
  79.         const int getSizelimit();
  80.         /// export LDAP
  81.         const int exportUsers(const int hashkey, const string& outputdir);
  82.     private:
  83.         /// Initialize LDAP session
  84.         bool initialize();
  85.         /// Authenticate to LDAP as nobody
  86.         bool authenticate();
  87.         /// Strip spaces from telephone number 
  88.         void stripSpaces(string& phoneNumber);
  89.         /// Create XML file for given LDAP entry
  90.         void createXmlbuffer(char* filebuffer, const string& phonenumber, 
  91.                    const string& ip, const string& fna, const string& cfb);
  92.         /// LDAP handle
  93.         LDAP* myLdapHandle;
  94.         /// LDAP host
  95.         string myLdapHost;
  96.         /// LDAP PORT
  97.         unsigned int myLdapPort;
  98.         /// LDAP Base DN (Distinguished Name)
  99.         string myLdapBasedn;
  100.         /// LDAP Bind as DN
  101.         string myLdapBinddn;
  102.         /// LDAP Bind as PW
  103.         string myLdapBindpw;
  104. };
  105. #endif