10 #include <QLoggingCategory> 11 #include <QTemporaryFile> 15 Q_LOGGING_CATEGORY(C_AUTH_HTPASSWD,
"cutelyst.plugin.authentication.htpasswd", QtWarningMsg)
28 const QString username = user.
value(QStringLiteral(
"username"));
33 qCWarning(C_AUTH_HTPASSWD) <<
"Failed to open temporary file for writing";
38 QFile file(m_filename);
40 while (!file.
atEnd()) {
45 user.
value(QStringLiteral(
"password")).toLatin1().replace(
':',
',') +
'\n';
55 user.
value(QStringLiteral(
"password")).toLatin1().replace(
':',
',') +
61 qCWarning(C_AUTH_HTPASSWD) <<
"Failed to remove auth file for replacement";
65 if (!tmp.
rename(m_filename)) {
66 qCWarning(C_AUTH_HTPASSWD) <<
"Failed to rename temporary file";
74 const QString username = userInfo.
value(QStringLiteral(
"username"));
76 QFile file(m_filename);
78 while (!file.
atEnd()) {
81 if (parts.
size() >= 2 && !parts.
first().startsWith(
'#') &&
83 ret.
insert(QStringLiteral(
"username"), username);
86 ret.
insert(QStringLiteral(
"password"),
void insert(const QString &key, const QVariant &value)
void setId(const QVariant &id)
void addUser(const ParamsMultiMap &user)
QList< QByteArray > split(char sep) const const
QByteArray trimmed() const const
QList::const_reference at(qsizetype i) const const
bool rename(const QString &newName)
bool exists() const const
AuthenticationUser fromSession(Context *c, const QVariant &frozenUser) override final
qsizetype size() const const
QVariant forSession(Context *c, const AuthenticationUser &user) override final
Authentication data store using a flat file.
void setAutoRemove(bool b)
QByteArray & replace(qsizetype pos, qsizetype len, const char *after, qsizetype alen)
The Cutelyst namespace holds all public Cutelyst API.
virtual bool open(QIODeviceBase::OpenMode mode) override
AuthenticationUser findUser(Context *c, const ParamsMultiMap &userInfo) override final
Container for user data retrieved from an AuthenticationStore.
virtual bool atEnd() const const override
QString fromLatin1(QByteArrayView str)
QByteArray toLatin1() const const
virtual void close() override
virtual ~StoreHtpasswd() override
qint64 write(const char *data, qint64 maxSize)
QString toString() const const
qint64 readLine(char *data, qint64 maxSize)
T value(const Key &key, const T &defaultValue) const const