diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-09-21 17:32:39 +0200 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-09-21 17:33:15 +0200 |
commit | a5d34b34fbd867bd13ce94cdaf55d96576d4d14d (patch) | |
tree | bb3b8b902f13bda65e49485a789f0eca07329ab5 /src/network/access | |
parent | 5957f245c6c77c98d7e90d614c9fe2cdbfe7e8e6 (diff) | |
parent | a23ff58d716f62b02ec825a3ea3c6b07616ee3f0 (diff) |
Merge branch 'stable' into dev
Change-Id: I37d85631ab1165ab91457d8880c4da907a9df73b
Diffstat (limited to 'src/network/access')
-rw-r--r-- | src/network/access/qhttpnetworkconnection.cpp | 2 | ||||
-rw-r--r-- | src/network/access/qhttpnetworkconnectionchannel.cpp | 4 | ||||
-rw-r--r-- | src/network/access/qnetworkaccessmanager.cpp | 4 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp index c3e3716b26..b6a3b5e3ab 100644 --- a/src/network/access/qhttpnetworkconnection.cpp +++ b/src/network/access/qhttpnetworkconnection.cpp @@ -509,7 +509,7 @@ void QHttpNetworkConnectionPrivate::createAuthorization(QAbstractSocket *socket, // Send "Authorization" header, but not if it's NTLM and the socket is already authenticated. if (channels[i].authMethod != QAuthenticatorPrivate::None) { - if (!(channels[i].authMethod == QAuthenticatorPrivate::Ntlm && channels[i].lastStatus != 401)) { + if ((channels[i].authMethod != QAuthenticatorPrivate::Ntlm && request.headerField("Authorization").isEmpty()) || channels[i].lastStatus == 401) { QAuthenticatorPrivate *priv = QAuthenticatorPrivate::getPrivate(channels[i].authenticator); if (priv && priv->method != QAuthenticatorPrivate::None) { QByteArray response = priv->calculateResponse(request.d->methodName(), request.d->uri(false)); diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index 6e61eea5a4..da82fdf8d2 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -236,8 +236,8 @@ bool QHttpNetworkConnectionChannel::sendRequest() QAuthenticator &auth = authenticator; if (url.userName() != auth.user() || (!url.password().isEmpty() && url.password() != auth.password())) { - auth.setUser(url.userName()); - auth.setPassword(url.password()); + auth.setUser(url.userName(QUrl::FullyDecoded)); + auth.setPassword(url.password(QUrl::FullyDecoded)); connection->d_func()->copyCredentials(connection->d_func()->indexOf(socket), &auth, false); } // clear the userinfo, since we use the same request for resending diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index 91655ef485..101e1a8c25 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -1358,8 +1358,8 @@ void QNetworkAccessManagerPrivate::authenticationRequired(QAuthenticator *authen // if credentials are included in the url, then use them if (!url.userName().isEmpty() && !url.password().isEmpty()) { - authenticator->setUser(url.userName()); - authenticator->setPassword(url.password()); + authenticator->setUser(url.userName(QUrl::FullyDecoded)); + authenticator->setPassword(url.password(QUrl::FullyDecoded)); *urlForLastAuthentication = url; authenticationManager->cacheCredentials(url, authenticator); return; |