Represents an authentication challenge when accessing secured resources. More...
Header: | #include <AuthenticationChallenge.h> |
Since: | Esri::ArcGISRuntime 100.0 |
Inherits: | Esri::ArcGISRuntime::Object |
Properties
|
|
Public Functions
virtual | ~AuthenticationChallenge() override |
QUrl | authenticatingHost() const |
Esri::ArcGISRuntime::AuthenticationChallengeType | authenticationChallengeType() const |
QUrl | authorizationUrl() const |
void | cancel() |
void | cancelWithError(const QString &title, const QString &html) |
void | continueWithClientCertificate(int clientCertificateIndex) |
void | continueWithCredential(Esri::ArcGISRuntime::Credential *credential) |
void | continueWithOAuthAuthorizationCode(const QString &oAuthAuthorizationCode) |
void | continueWithSslHandshake(bool trust, bool remember) |
void | continueWithUsernamePassword(const QString &username, const QString &password) |
Esri::ArcGISRuntime::Error | error() const |
int | failureCount() const |
Esri::ArcGISRuntime::Credential * | proposedCredential() const |
QUrl | requestUrl() const |
QList<QSslError> | sslErrors() const |
Detailed Description
Instances of this class represent an authentication challenge that was raised because a security error was encountered while trying to access a secured network resource. You can connect to the AuthenticationManager::authenticationChallenge signal to handle challenges raised from security errors.
To satisfy the challenge, you need to do one of the following:
- Call continueWithCredential with a valid credential. The task that issued the challenge will try to connect to the resource using the credential.
- Call continueWithUsernamePassword() with a valid username and password which is applied to the credential to continue with the request.
- Call continueWithOAuthAuthorizationCode() with a valid OAuth authorization code which is applied to the credential to continue to authenticate using OAuth.
- Call continueWithClientCertificate() with the index of the client certificate to use, obtained from AuthenticationManager::clientCertificateInfos which is applied to the credential to continue with the request.
- Call continueWithSslHandshake() if the challenge was due to an SSL error, such as an untrusted server certificate, and you want to either trust of reject the network request.
- Call cancel() to cancel the challenge. The task that issued the challenge will fail to connect to the resource and should emit an error signal.
Property Documentation
[read-only]
authenticatingHost : const QUrl
This property holds the host server of the network resource being accessed (read-only).
This is useful to display to a user when prompting them for a credential when a resource fails to load.
Access functions:
QUrl | authenticatingHost() const |
[read-only]
authenticationChallengeType : const Esri::ArcGISRuntime::AuthenticationChallengeType
This property holds the type of authentication challenge (read-only).
This is useful for displaying a user interface for a credential request when a resource fails to load.
Access functions:
Esri::ArcGISRuntime::AuthenticationChallengeType | authenticationChallengeType() const |
[read-only]
authorizationUrl : const QUrl
This property holds the OAuth authorization URL to access to obtain an authorization code (read-only).
This value is only populated when the challenge type is AuthenticationChallengeType::OAuth for OAuth user authentication.
Access functions:
QUrl | authorizationUrl() const |
[read-only]
failureCount : const int
This property holds the number of times this particular challenge has failed (read-only).
Access functions:
int | failureCount() const |
[read-only]
requestUrl : const QUrl
This property holds the URL being accessed that led to this authentication challenge (read-only).
Access functions:
QUrl | requestUrl() const |
Member Function Documentation
[override virtual]
AuthenticationChallenge::~AuthenticationChallenge ()
Destructor.
[invokable]
void AuthenticationChallenge::cancel()
Cancels the operation that led to the authentication challenge.
The resource will fail to load and should emit an error signal.
This function is invokable from QML.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[invokable]
void AuthenticationChallenge::cancelWithError (const QString &title, const QString &html)
Cancels the operation that led to the authentication challenge.
This function can be called when the authentication uses an access delegation, based on WebView, like OAuth or SAML. The argument of the function are the title and the html content of the WebView. These arguments are parsed to determine the authentication error.
The resource will fail to load and should emit an error signal.
This function is invokable from QML.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[invokable]
void AuthenticationChallenge::continueWithClientCertificate (int clientCertificateIndex )
Attempts to continue with the network transaction with the provided clientCertificateIndex.
This will obtain a client certificate from AuthenticationManager::clientCertificateInfos which is then applied to the proposed credential to continue with the request.
This function is invokable from QML.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
void AuthenticationChallenge::continueWithCredential (Esri::ArcGISRuntime::Credential *credential)
Attempts to continue with the network transaction with the provided credential.
Continuing with a null credential will cause the resource to fail to load.
[invokable]
void AuthenticationChallenge::continueWithOAuthAuthorizationCode (const QString &oAuthAuthorizationCode )
Attempts to continue with the network transaction with the provided oAuthAuthorizationCode.
This will populate the proposed credential with the OAuth authorization code to continue with the request.
This function is invokable from QML.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[invokable]
void AuthenticationChallenge::continueWithSslHandshake (bool trust, bool remember)
Attempts to continue with the network transaction specifying whether to trust the host and remember that decision for future requests.
If requested to remember to trust or not trust, a specific host, a challenge will not be issued for this host again for the app session.
This function is invokable from QML.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[invokable]
void AuthenticationChallenge::continueWithUsernamePassword (const QString &username, const QString &password)
Attempts to continue with the network transaction with the provided username and password.
This will populate the proposed credential with username and password to continue with the request.
This function is invokable from QML.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
Esri::ArcGISRuntime::Error AuthenticationChallenge::error() const
Returns the underlying security error that led to this authentication challenge.
Esri::ArcGISRuntime::Credential *AuthenticationChallenge::proposedCredential () const
Returns the credential that is currently being used to access a secured resource.
This could be a pre-configured credential with limited properties already defined for you. This credential can be used to specify the identity through a username/password, or token, and then call continueWithCredential.
QList<QSslError > AuthenticationChallenge::sslErrors () const
Returns a list of QSslError when an SslHandshake error has occurred.
This value is only populated when the challenge type is AuthenticationChallengeType::SslHandshake indicating that an SSL error occurred when attempting to access a secured resource.
Inspect these errors or prompt the end user to determine if the request should continue and ignore these errors.