13#include <QAuthenticator>
14#include <QCryptographicHash>
17#include <QNetworkReply>
18#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
19#include <QRandomGenerator>
22class KDSoapAuthentication::Private
27 bool usePasswordDigest =
false;
28 bool useWSUsernameToken =
false;
36 d->usePasswordDigest =
true;
98 return d->usePasswordDigest;
103 return d->useWSUsernameToken;
108 return d->overrideWSUsernameCreatedTime;
113 return d->overrideWSUsernameNonce;
118 return !d->user.isEmpty() || !d->password.isEmpty();
128 authenticator->
setUser(d->user);
134bool KDSoapAuthentication::hasWSUsernameTokenHeader()
const
136 return hasAuth() && d->useWSUsernameToken;
139void KDSoapAuthentication::writeWSUsernameTokenHeader(
QXmlStreamWriter &writer)
const
147#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
153 if (!d->overrideWSUsernameNonce.isEmpty()) {
154 nonce = d->overrideWSUsernameNonce;
157 if (d->overrideWSUsernameCreatedTime.isValid()) {
158 time = d->overrideWSUsernameCreatedTime;
174 if (d->usePasswordDigest) {
176 QLatin1String(
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"));
177 QByteArray passwordConcat = nonce + timestamp.
toUtf8() + d->password.toUtf8();
182 QLatin1String(
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"));
bool useWSUsernameToken() const
void setPassword(const QString &password)
void setUseWSUsernameToken(bool useWSUsernameToken)
void setUsePasswordDigest(const bool usePasswordDigest)
void setOverrideWSUsernameCreatedTime(QDateTime overrideWSUsernameCreatedTime)
void setOverrideWSUsernameNonce(QByteArray overrideWSUsernameNonce)
QDateTime overrideWSUsernameCreatedTime() const
KDSoapAuthentication & operator=(const KDSoapAuthentication &other)
bool usePasswordDigest() const
QByteArray overrideWSUsernameNonce() const
void setUser(const QString &user)
static QString soapSecurityUtility()
static QString soapSecurityExtention()
void setPassword(const QString &password)
void setUser(const QString &user)
const char * constData() const const
QByteArray number(int n, int base)
QByteArray toBase64(QByteArray::Base64Options options) const const
QByteArray hash(const QByteArray &data, QCryptographicHash::Algorithm method)
QDateTime currentDateTimeUtc()
QString toString(Qt::DateFormat format) const const
QVariant property(const char *name) const const
bool setProperty(const char *name, const QVariant &value)
QString fromLatin1(const char *str, int size)
QByteArray toUtf8() const const
bool toBool() const const
void writeAttribute(const QString &qualifiedName, const QString &value)
void writeCharacters(const QString &text)
void writeStartElement(const QString &qualifiedName)