From: Hannah von Reth Date: Tue, 31 Mar 2020 11:51:18 +0000 (+0200) Subject: Cookies: Don't override cookies with outdated values X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~468^2~118 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f073997aee513ff3666a4e02dc404d8f1d6b4a09;p=nextcloud-desktop.git Cookies: Don't override cookies with outdated values This code was actually not breaking most cookie handling by accident. As the raw cookies where not split properly we added cookies with values like "key: val; key2 = val2; key3 = val3" When the code was corrected we overwrote the newer values in the jar with the old ones from a request. --- diff --git a/src/libsync/accessmanager.cpp b/src/libsync/accessmanager.cpp index 87d435644..1b337d8c1 100644 --- a/src/libsync/accessmanager.cpp +++ b/src/libsync/accessmanager.cpp @@ -48,18 +48,6 @@ AccessManager::AccessManager(QObject *parent) setCookieJar(new CookieJar); } -void AccessManager::setRawCookie(const QByteArray &rawCookie, const QUrl &url) -{ - QNetworkCookie cookie(rawCookie.left(rawCookie.indexOf('=')), - rawCookie.mid(rawCookie.indexOf('=') + 1)); - qCDebug(lcAccessManager) << cookie.name() << cookie.value(); - QList cookieList; - cookieList.append(cookie); - - QNetworkCookieJar *jar = cookieJar(); - jar->setCookiesFromUrl(cookieList, url); -} - static QByteArray generateRequestId() { // Use a UUID with the starting and ending curly brace removed. @@ -71,11 +59,6 @@ QNetworkReply *AccessManager::createRequest(QNetworkAccessManager::Operation op, { QNetworkRequest newRequest(request); - if (newRequest.hasRawHeader("cookie")) { - // This will set the cookie into the QNetworkCookieJar which will then override the cookie header - setRawCookie(request.rawHeader("cookie"), request.url()); - } - // Respect request specific user agent if any if (!newRequest.header(QNetworkRequest::UserAgentHeader).isValid()) { newRequest.setHeader(QNetworkRequest::UserAgentHeader, Utility::userAgentString()); diff --git a/src/libsync/accessmanager.h b/src/libsync/accessmanager.h index b86e497f9..a2bd2ad45 100644 --- a/src/libsync/accessmanager.h +++ b/src/libsync/accessmanager.h @@ -34,8 +34,6 @@ class OWNCLOUDSYNC_EXPORT AccessManager : public QNetworkAccessManager public: AccessManager(QObject *parent = nullptr); - void setRawCookie(const QByteArray &rawCookie, const QUrl &url); - protected: QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData = nullptr) override; };