/* This file is part of libkldap. Copyright (c) 2004-2006 Szombathelyi György This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef KLDAP_LDAPSERVER_H #define KLDAP_LDAPSERVER_H #include #include "ldapurl.h" #include "ldapdn.h" #include "kldap_export.h" namespace KLDAP { /** * @short A class that contains LDAP server connection settings. * * This class holds various parameters that are needed to connect * to an LDAP server. */ class KLDAP_EXPORT LdapServer { public: /** * Creates an empty LDAP server object. */ LdapServer(); /** * Creates a new LDAP server object. * * @param url The LDAP url of the server. */ LdapServer( const LdapUrl &url ); /** * Creates a new LDAP server object from an @p other object. */ LdapServer( const LdapServer &other ); /** * Overwrites the values of the LDAP server object with * the values from an @p other object. */ LdapServer &operator=( const LdapServer &other ); /** * Destroys the LDAP server object. */ virtual ~LdapServer(); /** * Describes the encryption settings that can be used * for the LDAP connection. */ typedef enum { None, ///< Do not use any encryption. TLS, ///< Use TLS encryption. SSL ///< Use SSL encryption. } Security; /** * Describes the authentication method that can be used * for the LDAP connection. */ typedef enum { Anonymous, ///< Do no authentication. Simple, ///< Authenticate via login and password. SASL ///< Azthenticate with the SASL framework. } Auth; /** * Clears all server settings. */ void clear(); /** * Sets the host of the LDAP connection. */ void setHost( const QString &host ); /** * Returns the host of the LDAP connection. */ QString host() const; /** * Sets the port of the LDAP connection. * If not port is set, 389 is used as default. * @param port the LDAP port connection to set */ void setPort( int port ); /** * Returns the port of the LDAP connection. */ int port() const; /** * Sets the @p baseDn of the LDAP connection. */ void setBaseDn( const LdapDN &baseDn ); /** * Returns the baseDn of the LDAP connection. */ LdapDN baseDn() const; /** * Sets the @p user of the LDAP connection. */ void setUser( const QString &user ); /** * Returns the user of the LDAP connection. */ QString user() const; /** * Sets the @p bindDn of the LDAP connection. */ void setBindDn( const QString &bindDn ); /** * Returns the bindDn of the LDAP connection. */ QString bindDn() const; /** * Sets the @p realm of the LDAP connection. */ void setRealm( const QString &realm ); /** * Returns the realm of the LDAP connection. */ QString realm() const; /** * Sets the @p password of the LDAP connection. */ void setPassword( const QString &password ); /** * Returns the password of the LDAP connection. */ QString password() const; /** * Sets the protocol @p version of the LDAP connection. * If no version is set, 3 is used as default. * @param version the protocol version to set */ void setVersion( int version ); /** * Returns the protocol version of the LDAP connection. */ int version() const; /** * Sets the security @p mode of the LDAP connection. * If no security is set, None is used as default. * @param mode the security mode to set */ void setSecurity( Security mode ); /** * Returns the security mode of the LDAP connection. */ Security security() const; /** * Sets the @p authentication method of the LDAP connection. * If no authentication method is set, Anonymous is used as default. * @param authentication the authentication method to set */ void setAuth( Auth authentication ); /** * Returns the authentication method of the LDAP connection. */ Auth auth() const; /** * Sets the @p mech of the LDAP connection. */ void setMech( const QString &mech ); /** * Returns the mech of the LDAP connection. */ QString mech() const; /** * Sets the @p timeout of the LDAP connection. */ void setTimeout( int timeout ); /** * Returns the timeout of the LDAP connection. */ int timeout() const; /** * Sets the search @p scope of the LDAP connection. */ void setScope( LdapUrl::Scope scope ); /** * Returns the search scope of the LDAP connection. */ LdapUrl::Scope scope() const; /** * Sets the time @p limit of the LDAP connection. */ void setTimeLimit( int limit ); /** * Returns the time limit of the LDAP connection. */ int timeLimit() const; /** * Sets the size @p limit of the LDAP connection. */ void setSizeLimit( int sizelimit ); /** * Returns the size limit of the LDAP connection. */ int sizeLimit() const; /** * Sets the page @p size of the LDAP connection. */ void setPageSize( int size ); /** * Returns the page size of the LDAP connection. */ int pageSize() const; /** * Sets the @p filter string of the LDAP connection. */ void setFilter( const QString &filter ); /** * Returns the filter string of the LDAP connection. */ QString filter() const; /** * Sets the server parameters from an RFC2255 compliant LDAP @p url. */ void setUrl( const LdapUrl &url ); /** * Returns the server parameters as an RFC2255 compliant LDAP Url. * The URL extensions which are supported: * Standard: bindname * KLDAP extensions: x-tls, x-version, x-sasl, x-mech, x-realm, * x-sizelimit, x-timelimit, x-pagesize, x-timeout */ LdapUrl url() const; private: class LdapServerPrivate; LdapServerPrivate *const d; }; } #endif