]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/LDAPBindRequest.h
initial support for SASL
[openldap] / contrib / ldapc++ / src / LDAPBindRequest.h
1 /*
2  * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
3  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
4  */
5
6 #ifndef LDAP_BIND_REQUEST_H
7 #define LDAP_BIND_REQUEST_H
8
9 #include <LDAPRequest.h>
10 #include <LDAPResult.h>
11 #include <SaslInteractionHandler.h>
12
13 class LDAPBindRequest : LDAPRequest {
14     private:
15         std::string m_dn;
16         std::string m_cred;
17         std::string m_mech;
18
19     public:
20         LDAPBindRequest( const LDAPBindRequest& req);
21         //just for simple authentication
22         LDAPBindRequest(const std::string&, const std::string& passwd, 
23                 LDAPAsynConnection *connect, const LDAPConstraints *cons, 
24                 bool isReferral=false);
25         virtual ~LDAPBindRequest();
26         virtual LDAPMessageQueue *sendRequest();
27 };
28
29 class LDAPSaslBindRequest : LDAPRequest
30 {
31     public:
32         LDAPSaslBindRequest( const std::string& mech, const std::string& cred, 
33         LDAPAsynConnection *connect, const LDAPConstraints *cons, 
34                 bool isReferral=false);
35         virtual LDAPMessageQueue *sendRequest();
36         virtual ~LDAPSaslBindRequest();
37
38     private:
39         std::string m_mech;
40         std::string m_cred;
41 };
42
43 class LDAPSaslInteractiveBind : LDAPRequest
44 {
45     public:
46         LDAPSaslInteractiveBind( const std::string& mech, int flags,
47                 SaslInteractionHandler *sih, LDAPAsynConnection *connect, 
48                 const LDAPConstraints *cons, bool isReferral=false);
49         virtual LDAPMessageQueue *sendRequest();
50         virtual LDAPMsg* getNextMessage() const;
51         virtual ~LDAPSaslInteractiveBind();
52
53     private:
54         std::string m_mech;
55         int m_flags;
56         SaslInteractionHandler *m_sih;
57         LDAPResult *m_res;
58 };
59 #endif //LDAP_BIND_REQUEST_H
60