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