From 4609315ffcf2655b7660f9bdff45a2e5b0b938f0 Mon Sep 17 00:00:00 2001 From: Hannah von Reth Date: Fri, 3 Mar 2023 15:44:00 +0100 Subject: [PATCH] Fix auth encoding issue Fixes: #10564 --- changelog/unreleased/10564 | 5 +++++ src/gui/newwizard/jobs/checkbasicauthjobfactory.cpp | 4 ++-- src/libsync/networkjobs/fetchuserinfojobfactory.cpp | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 changelog/unreleased/10564 diff --git a/changelog/unreleased/10564 b/changelog/unreleased/10564 new file mode 100644 index 00000000000..2233e14d17e --- /dev/null +++ b/changelog/unreleased/10564 @@ -0,0 +1,5 @@ +Bugfix: Fix encoding issue with basic authentication + +In 3.0 we introduced an encoding issue for basic authentication. + +https://github.com/owncloud/client/issues/10564 diff --git a/src/gui/newwizard/jobs/checkbasicauthjobfactory.cpp b/src/gui/newwizard/jobs/checkbasicauthjobfactory.cpp index 2aca0b8c539..dc6e41a620e 100644 --- a/src/gui/newwizard/jobs/checkbasicauthjobfactory.cpp +++ b/src/gui/newwizard/jobs/checkbasicauthjobfactory.cpp @@ -31,8 +31,8 @@ CoreJob *CheckBasicAuthJobFactory::startJob(const QUrl &url, QObject *parent) req.setAttribute(QNetworkRequest::AuthenticationReuseAttribute, QNetworkRequest::Manual); - QString authorizationHeader = QStringLiteral("Basic %1").arg(QString::fromLocal8Bit(QStringLiteral("%1:%2").arg(_username, _password).toLocal8Bit().toBase64())); - req.setRawHeader("Authorization", authorizationHeader.toLocal8Bit()); + QString authorizationHeader = QStringLiteral("Basic %1").arg(QString::fromUtf8(QStringLiteral("%1:%2").arg(_username, _password).toUtf8().toBase64())); + req.setRawHeader("Authorization", authorizationHeader.toUtf8()); auto *job = new CoreJob(nam()->sendCustomRequest(req, "PROPFIND"), parent); diff --git a/src/libsync/networkjobs/fetchuserinfojobfactory.cpp b/src/libsync/networkjobs/fetchuserinfojobfactory.cpp index a6c7657926a..c5aa47958d7 100644 --- a/src/libsync/networkjobs/fetchuserinfojobfactory.cpp +++ b/src/libsync/networkjobs/fetchuserinfojobfactory.cpp @@ -26,7 +26,7 @@ namespace OCC { FetchUserInfoJobFactory FetchUserInfoJobFactory::fromBasicAuthCredentials(QNetworkAccessManager *nam, const QString &username, const QString &password) { - QString authorizationHeader = QStringLiteral("Basic %1").arg(QString::fromLocal8Bit(QStringLiteral("%1:%2").arg(username, password).toLocal8Bit().toBase64())); + QString authorizationHeader = QStringLiteral("Basic %1").arg(QString::fromUtf8(QStringLiteral("%1:%2").arg(username, password).toUtf8().toBase64())); return { nam, authorizationHeader }; }