cutelyst 5.1.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
storeldap.h
1/*
2 * SPDX-FileCopyrightText: (C) 2026 Daniel Nicoletti <dantti12@gmail.com>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5#pragma once
6
7#include <Cutelyst/Plugins/Authentication/authenticationstore.h>
8
9namespace Cutelyst {
10
26class CUTELYST_PLUGIN_AUTHENTICATION_EXPORT StoreLDAP : public AuthenticationStore
27{
28public:
32 enum class SearchScope {
33 Base,
34 OneLevel,
35 SubTree,
36 };
37
41 StoreLDAP();
42
46 ~StoreLDAP() override;
47
51 AuthenticationUser findUser(Context *c, const ParamsMultiMap &userInfo) override final;
52
56 QVariant forSession(Context *c, const AuthenticationUser &user) override final;
57
61 AuthenticationUser fromSession(Context *c, const QVariant &frozenUser) override final;
62
66 [[nodiscard]] bool validatePassword(Context *c,
67 const AuthenticationUser &user,
68 const QString &password) const override;
69
73 void setServerUris(const QStringList &serverUris);
74
78 [[nodiscard]] QStringList serverUris() const;
79
83 void setBindDn(const QString &bindDn);
84
88 [[nodiscard]] QString bindDn() const;
89
93 void setBindPassword(const QString &bindPassword);
94
98 void setUserBaseDn(const QString &baseDn);
99
103 [[nodiscard]] QString userBaseDn() const;
104
108 void setUserField(const QString &userField);
109
113 [[nodiscard]] QString userField() const;
114
118 void setIdAttribute(const QString &idAttribute);
119
123 [[nodiscard]] QString idAttribute() const;
124
130 void setUserFilter(const QString &userFilter);
131
135 [[nodiscard]] QString userFilter() const;
136
140 void setUserScope(SearchScope scope);
141
145 [[nodiscard]] SearchScope userScope() const;
146
150 void setAttributes(const QStringList &attributes);
151
155 [[nodiscard]] QStringList attributes() const;
156
160 void setStartTls(bool startTls);
161
165 [[nodiscard]] bool startTls() const;
166
167private:
169 findUserByAttribute(Context *c, const QString &attribute, const QString &value);
170
171 QStringList m_serverUris;
172 QString m_bindDn;
173 QString m_bindPassword;
174 QString m_userBaseDn;
175 QString m_userField;
176 QString m_idAttribute;
177 QString m_userFilter;
178 QStringList m_attributes;
179 SearchScope m_userScope;
180 bool m_startTls;
181};
182
183} // namespace Cutelyst
Abstract class to retrieve user data from a store.
Container for user data retrieved from an AuthenticationStore.
The Cutelyst Context.
Definition context.h:42
Authentication store backed by an LDAP directory.
Definition storeldap.h:27
The Cutelyst namespace holds all public Cutelyst API.