19 #include "authenticationrealm.h"
21 #include "authenticationstore.h"
25 #include <Cutelyst/Plugins/Session/session.h>
29 Q_LOGGING_CATEGORY(C_AUTH_REALM,
"cutelyst.plugin.authentication.realm", QtWarningMsg)
31 #define SESSION_AUTHENTICATION_USER "__authentication_user"
32 #define SESSION_AUTHENTICATION_USER_REALM "__authentication_user_realm" // in authentication.cpp
37 , m_credential(credential)
39 m_store->setParent(
this);
40 m_credential->setParent(
this);
45 AuthenticationRealm::~AuthenticationRealm()
82 Session::deleteValues(c, {QStringLiteral(SESSION_AUTHENTICATION_USER), QStringLiteral(SESSION_AUTHENTICATION_USER_REALM)});
88 QStringLiteral(SESSION_AUTHENTICATION_USER),
91 QStringLiteral(SESSION_AUTHENTICATION_USER_REALM),
100 QVariant _frozenUser = frozenUser;
101 if (_frozenUser.isNull()) {
105 if (_frozenUser.isNull()) {
115 qCWarning(C_AUTH_REALM) <<
"Store claimed to have a restorable user, but restoration failed. Did you change the user's id_field?";
125 return Session::value(c, QStringLiteral(SESSION_AUTHENTICATION_USER));
128 #include "moc_authenticationrealm.cpp"
QMap< QString, QString > ParamsMultiMap
virtual AuthenticationUser findUser(Context *c, const ParamsMultiMap &userinfo)=0
void removePersistedUser(Context *c)
Removes the user from the session.
bool isNull() const
Returns true if the object is null.
AuthenticationStore * store() const
Returns the authentication store object.
static void setValue(Context *c, const QString &key, const QVariant &value)
QVariant userIsRestorable(Context *c)
Checks if user can be retrieved.
AuthenticationUser persistUser(Context *c, const AuthenticationUser &user)
Stores the user on the session.
void setAuthRealm(const QString &authRealm)
Sets the authentication realm from which this user was retrieved.
The Cutelyst Component base class.
AuthenticationRealm(AuthenticationStore *store, AuthenticationCredential *credential, const QString &name=QLatin1String(defaultRealm), QObject *parent=nullptr)
Constructs a new AuthenticationRealm object with the given parent.
virtual bool canAutoCreateUser() const
virtual AuthenticationUser authenticate(Context *c, AuthenticationRealm *realm, const ParamsMultiMap &authinfo)=0
Tries to authenticate the authinfo using the give realm.
virtual AuthenticationUser fromSession(Context *c, const QVariant &frozenUser)
AuthenticationCredential * credential() const
Returns the authentication credential object.
virtual bool canAutoUpdateUser() const
virtual AuthenticationUser authenticate(Context *c, const ParamsMultiMap &authinfo)
Tries to authenticate the user with authinfo returning a non null AuthenticationUser on success.
The Cutelyst namespace holds all public Cutelyst API.
virtual AuthenticationUser autoUpdateUser(Context *c, const ParamsMultiMap &userinfo) const
void setName(const QString &name)
AuthenticationUser restoreUser(Context *c, const QVariant &frozenUser)
Retrieves the user from the store.
static void deleteValues(Context *c, const QStringList &keys)
virtual AuthenticationUser findUser(Context *c, const ParamsMultiMap &userinfo)
Tries to find the user with authinfo returning a non null AuthenticationUser on success.
static QVariant value(Context *c, const QString &key, const QVariant &defaultValue=QVariant())
virtual AuthenticationUser autoCreateUser(Context *c, const ParamsMultiMap &userinfo) const
virtual QVariant forSession(Context *c, const AuthenticationUser &user)