- Qt 6.8
- Qt Network
- C++ Classes
- QAuthenticator
- Qt 6.8.1 Reference Documentation

# 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`

- List of all members, including inherited members
- QAuthenticator is part of Network Programming API.

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

Option | Direction | Type | Description
--- | --- | --- | ---
`realm` | Incoming | QString | Contains 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

Option | Direction | Type | Description
--- | --- | --- | ---
`realm` | Incoming | QString | Contains the realm of the authentication, the same as realm()

The Digest-MD5 authentication mechanism supports no outgoing options.

#### SPNEGO/Negotiate

Option | Direction | Type | Description
--- | --- | --- | ---
`spn` | Outgoing | QString | Provides 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`.