QAuthenticator Class

The QAuthenticator class provides an authentication object. More...

Header: #include <QAuthenticator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

Note: All functions in this class are reentrant.

Public Functions

QAuthenticator()
QAuthenticator(const QAuthenticator &other)
~QAuthenticator()
bool isNull() const
QVariant option(const QString &opt) const
QVariantHash options() const
QString password() const
QString realm() const
void setOption(const QString &opt, const QVariant &value)
void setPassword(const QString &password)
void setUser(const QString &user)
QString user() const
bool operator!=(const QAuthenticator &other) const
QAuthenticator &operator=(const QAuthenticator &other)
bool operator==(const QAuthenticator &other) const

Detailed Description

The QAuthenticator class is usually used in the authenticationRequired() and proxyAuthenticationRequired() signals of QNetworkAccessManager and QAbstractSocket. The class provides a way to pass back the required authentication information to the socket when accessing services that require authentication.

QAuthenticator supports the following authentication methods:

  • Basic
  • NTLM version 2
  • Digest-MD5
  • SPNEGO/Negotiate

Options

In addition to the username and password required for authentication, a QAuthenticator object can also contain additional options. The options() function can be used to query incoming options sent by the server; the setOption() function can be used to set outgoing options, to be processed by the authenticator calculation. The options accepted and provided depend on the authentication type (see method()).

The following tables list known incoming options as well as accepted outgoing options. The list of incoming options is not exhaustive, since servers may include additional information at any time. The list of outgoing options is exhaustive, however, and no unknown options will be treated or sent back to the server.

Basic

OptionDirectionTypeDescription
realmIncomingQStringContains the realm of the authentication, the same as realm()

The Basic authentication mechanism supports no outgoing options.

NTLM version 2

The NTLM authentication mechanism currently supports no incoming or outgoing options. On Windows, if no user has been set, domain\user credentials will be searched for on the local system to enable Single-Sign-On functionality.

Digest-MD5

OptionDirectionTypeDescription
realmIncomingQStringContains the realm of the authentication, the same as realm()

The Digest-MD5 authentication mechanism supports no outgoing options.

SPNEGO/Negotiate

OptionDirectionTypeDescription
spnOutgoingQStringProvides a custom SPN.

This authentication mechanism currently supports no incoming options.

The spn property is used on Windows clients when an SSPI library is used. If the property is not set, a default SPN will be used. The default SPN on Windows is HTTP/<hostname>.

Other operating systems use GSSAPI libraries. For that it is expected that KDC is set up, and the credentials can be fetched from it. The backend always uses HTTPS@<hostname> as an SPN.

See also QSslSocket.

Member Function Documentation

QAuthenticator::QAuthenticator()

Constructs an empty authentication object.

QAuthenticator::QAuthenticator(const QAuthenticator &other)

Constructs a copy of other.

[noexcept] QAuthenticator::~QAuthenticator()

Destructs the object.

bool QAuthenticator::isNull() const

Returns true if the object has not been initialized. Returns false if non-const member functions have been called, or the content was constructed or copied from another initialized QAuthenticator object.

QVariant QAuthenticator::option(const QString &opt) const

Returns the value related to option opt if it was set by the server. See the Options section for more information on incoming options. If option opt isn't found, an invalid QVariant will be returned.

See also setOption(), options(), and QAuthenticator options.

QVariantHash QAuthenticator::options() const

Returns all incoming options set in this QAuthenticator object by parsing the server reply. See the Options section for more information on incoming options.

See also option() and QAuthenticator options.

QString QAuthenticator::password() const

Returns the password used for authentication.

See also setPassword().

QString QAuthenticator::realm() const

Returns the realm requiring authentication.

void QAuthenticator::setOption(const QString &opt, const QVariant &value)

Sets the outgoing option opt to value value. See the Options section for more information on outgoing options.

See also options(), option(), and QAuthenticator options.

void QAuthenticator::setPassword(const QString &password)

Sets the password used for authentication.

See also password() and QNetworkAccessManager::authenticationRequired().

void QAuthenticator::setUser(const QString &user)

Sets the user used for authentication.

See also user() and QNetworkAccessManager::authenticationRequired().

QString QAuthenticator::user() const

Returns the user used for authentication.

See also setUser().

bool QAuthenticator::operator!=(const QAuthenticator &other) const

Returns true if this authenticator is different from other; otherwise returns false.

QAuthenticator &QAuthenticator::operator=(const QAuthenticator &other)

Assigns the contents of other to this authenticator.

bool QAuthenticator::operator==(const QAuthenticator &other) const

Returns true if this authenticator is identical to other; otherwise returns false.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.