Cookies: Don't override cookies with outdated values
authorHannah von Reth <hannah.vonreth@owncloud.com>
Tue, 31 Mar 2020 11:51:18 +0000 (13:51 +0200)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 15 Dec 2020 09:59:09 +0000 (10:59 +0100)
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.

src/libsync/accessmanager.cpp
src/libsync/accessmanager.h

index 87d435644d8a16a70dfb945d3e42d9a18633c3c4..1b337d8c19118b1cfd31096e77181bf550b534b0 100644 (file)
@@ -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<QNetworkCookie> 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());
index b86e497f93549c80bde46c123752e5a1dce2456b..a2bd2ad45a8d9f5f923a45f478ebcbcbb8d9f7d9 100644 (file)
@@ -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;
 };