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;
99 return d->usePasswordDigest;
104 return d->useWSUsernameToken;
109 return d->overrideWSUsernameCreatedTime;
114 return d->overrideWSUsernameNonce;
119 return !d->user.isEmpty() || !d->password.isEmpty();
129 authenticator->
setUser(d->user);
135bool KDSoapAuthentication::hasWSUsernameTokenHeader()
const
137 return hasAuth() && d->useWSUsernameToken;
140void KDSoapAuthentication::writeWSUsernameTokenHeader(
QXmlStreamWriter &writer)
const
148#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
154 if (!d->overrideWSUsernameNonce.isEmpty()) {
155 nonce = d->overrideWSUsernameNonce;
158 if (d->overrideWSUsernameCreatedTime.isValid()) {
159 time = d->overrideWSUsernameCreatedTime;
175 if (d->usePasswordDigest) {
177 QLatin1String(
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"));
178 QByteArray passwordConcat = nonce + timestamp.
toUtf8() + d->password.toUtf8();
183 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)