HTTP internals: send password even if no username is set

Setting only a password (no username) for HTTP requests does not
result in the password being sent.
Only cancel authentication if neither a username nor a password is set.
Requiring a username was preventing user-less logins.

Merge-request: 1250
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Task-number: QTBUG-15566
(cherry picked from commit 6057909d2b73c2c3aa01a0e9216714ef07fb652f)

Change-Id: I23a52362e3e8cf114219accca2b548ceb9dccff7
Reviewed-on: http://codereview.qt.nokia.com/2940
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
This commit is contained in:
Robert Hogan 2011-08-15 10:43:43 +02:00 committed by Qt by Nokia
parent 168fe50106
commit 0536ec05c3

View File

@ -395,7 +395,7 @@ void QAuthenticatorPrivate::parseHttpResponse(const QList<QPair<QByteArray, QByt
case Basic:
if(realm.isEmpty())
this->options[QLatin1String("realm")] = realm = QString::fromLatin1(options.value("realm"));
if (user.isEmpty())
if (user.isEmpty() && password.isEmpty())
phase = Done;
break;
case Ntlm:
@ -406,7 +406,7 @@ void QAuthenticatorPrivate::parseHttpResponse(const QList<QPair<QByteArray, QByt
this->options[QLatin1String("realm")] = realm = QString::fromLatin1(options.value("realm"));
if (options.value("stale").toLower() == "true")
phase = Start;
if (user.isEmpty())
if (user.isEmpty() && password.isEmpty())
phase = Done;
break;
}