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
67 validatePassword(Context *c, const AuthenticationUser &user, const QString &password) const;
68
72 void setServerUris(const QStringList &serverUris);
73
77 [[nodiscard]] QStringList serverUris() const;
78
82 void setBindDn(const QString &bindDn);
83
87 [[nodiscard]] QString bindDn() const;
88
92 void setBindPassword(const QString &bindPassword);
93
97 void setUserBaseDn(const QString &baseDn);
98
102 [[nodiscard]] QString userBaseDn() const;
103
107 void setUserField(const QString &userField);
108
112 [[nodiscard]] QString userField() const;
113
117 void setIdAttribute(const QString &idAttribute);
118
122 [[nodiscard]] QString idAttribute() const;
123
129 void setUserFilter(const QString &userFilter);
130
134 [[nodiscard]] QString userFilter() const;
135
139 void setUserScope(SearchScope scope);
140
144 [[nodiscard]] SearchScope userScope() const;
145
149 void setAttributes(const QStringList &attributes);
150
154 [[nodiscard]] QStringList attributes() const;
155
159 void setStartTls(bool startTls);
160
164 [[nodiscard]] bool startTls() const;
165
166private:
168 findUserByAttribute(Context *c, const QString &attribute, const QString &value);
169
170 QStringList m_serverUris;
171 QString m_bindDn;
172 QString m_bindPassword;
173 QString m_userBaseDn;
174 QString m_userField;
175 QString m_idAttribute;
176 QString m_userFilter;
177 QStringList m_attributes;
178 SearchScope m_userScope;
179 bool m_startTls;
180};
181
182} // 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.