Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2022-05-11 18:44:10 +0300
committerHannah von Reth <hannah.vonreth@owncloud.com>2022-05-11 18:44:55 +0300
commit9e3c0d923e00c0597c9bdaef97a5e159982ea376 (patch)
treee3af5a1a6ffa86e747a135c5a17c97b97cb9aa63
parent67802c5bcd6f4b05f9ec84c83b232f18f595a396 (diff)
Don't persist cookieswork/cookies
-rw-r--r--changelog/unreleased/94955
-rw-r--r--src/gui/accountmanager.cpp16
-rw-r--r--src/libsync/account.cpp1
-rw-r--r--src/libsync/cookiejar.cpp81
-rw-r--r--src/libsync/cookiejar.h3
-rw-r--r--test/CMakeLists.txt1
-rw-r--r--test/testcookies.cpp43
7 files changed, 5 insertions, 145 deletions
diff --git a/changelog/unreleased/9495 b/changelog/unreleased/9495
new file mode 100644
index 000000000..e24b94795
--- /dev/null
+++ b/changelog/unreleased/9495
@@ -0,0 +1,5 @@
+Change: We no longer persist cookies
+
+We no longer persist cookies over multiple client session.
+
+https://github.com/owncloud/client/issues/9495
diff --git a/src/gui/accountmanager.cpp b/src/gui/accountmanager.cpp
index 32bc8f152..0e34406a3 100644
--- a/src/gui/accountmanager.cpp
+++ b/src/gui/accountmanager.cpp
@@ -107,10 +107,6 @@ bool AccountManager::restore()
if (auto acc = loadAccountHelper(*settings)) {
acc->_id = accountId;
if (auto accState = AccountState::loadFromSettings(acc, *settings)) {
- auto jar = qobject_cast<CookieJar*>(acc->_am->cookieJar());
- OC_ASSERT(jar);
- if (jar)
- jar->restore(acc->cookieJarPath());
addAccountState(accState);
}
}
@@ -288,18 +284,6 @@ void AccountManager::saveAccountHelper(Account *acc, QSettings &settings, bool s
settings.setValue(QLatin1String(caCertsKeyC), certs);
}
settings.endGroup();
-
- // Save cookies.
- if (acc->_am) {
- CookieJar *jar = qobject_cast<CookieJar *>(acc->_am->cookieJar());
- if (jar) {
- qCInfo(lcAccountManager) << "Saving cookies." << acc->cookieJarPath();
- if (!jar->save(acc->cookieJarPath()))
- {
- qCWarning(lcAccountManager) << "Failed to save cookies to" << acc->cookieJarPath();
- }
- }
- }
}
AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp
index 90218acad..d0f3ca869 100644
--- a/src/libsync/account.cpp
+++ b/src/libsync/account.cpp
@@ -199,7 +199,6 @@ void Account::clearCookieJar()
OC_ASSERT(jar);
qCInfo(lcAccount) << "Clearing cookies";
jar->setAllCookies(QList<QNetworkCookie>());
- emit wantsAccountSaved(this);
}
/*! This shares our official cookie jar (containing all the tasty
diff --git a/src/libsync/cookiejar.cpp b/src/libsync/cookiejar.cpp
index 75535d876..72d3f4cbb 100644
--- a/src/libsync/cookiejar.cpp
+++ b/src/libsync/cookiejar.cpp
@@ -27,46 +27,6 @@ namespace OCC {
Q_LOGGING_CATEGORY(lcCookieJar, "sync.cookiejar", QtInfoMsg)
-namespace {
- const unsigned int JAR_VERSION = 23;
-}
-
-QDataStream &operator<<(QDataStream &stream, const QList<QNetworkCookie> &list)
-{
- stream << JAR_VERSION;
- stream << quint32(list.size());
- for (int i = 0; i < list.size(); ++i)
- stream << list.at(i).toRawForm();
- return stream;
-}
-
-QDataStream &operator>>(QDataStream &stream, QList<QNetworkCookie> &list)
-{
- list.clear();
-
- quint32 version;
- stream >> version;
-
- if (version != JAR_VERSION)
- return stream;
-
- quint32 count;
- stream >> count;
- for (quint32 i = 0; i < count; ++i) {
- QByteArray value;
- stream >> value;
- QList<QNetworkCookie> newCookies = QNetworkCookie::parseCookies(value);
- if (newCookies.count() == 0 && value.length() != 0) {
- qCWarning(lcCookieJar) << "CookieJar: Unable to parse saved cookie:" << value;
- }
- for (int j = 0; j < newCookies.count(); ++j)
- list.append(newCookies.at(j));
- if (stream.atEnd())
- break;
- }
- return stream;
-}
-
CookieJar::CookieJar(QObject *parent)
: QNetworkCookieJar(parent)
{
@@ -98,47 +58,6 @@ void CookieJar::clearSessionCookies()
setAllCookies(removeExpired(allCookies()));
}
-bool CookieJar::save(const QString &fileName)
-{
- const QFileInfo info(fileName);
- if (!info.dir().exists())
- {
- info.dir().mkpath(QStringLiteral("."));
- }
-
- qCDebug(lcCookieJar) << fileName;
- QFile file(fileName);
- if (!file.open(QIODevice::WriteOnly))
- {
- return false;
- }
- QDataStream stream(&file);
- stream << removeExpired(allCookies());
- file.close();
- return true;
-}
-
-bool CookieJar::restore(const QString &fileName)
-{
- const QFileInfo info(fileName);
- if (!info.exists())
- {
- return false;
- }
-
- QFile file(fileName);
- if (!file.open(QIODevice::ReadOnly))
- {
- return false;
- }
- QDataStream stream(&file);
- QList<QNetworkCookie> list;
- stream >> list;
- setAllCookies(removeExpired(list));
- file.close();
- return true;
-}
-
QList<QNetworkCookie> CookieJar::removeExpired(const QList<QNetworkCookie> &cookies)
{
QList<QNetworkCookie> updatedList;
diff --git a/src/libsync/cookiejar.h b/src/libsync/cookiejar.h
index 6d3703aaa..2346f1b4a 100644
--- a/src/libsync/cookiejar.h
+++ b/src/libsync/cookiejar.h
@@ -39,9 +39,6 @@ public:
using QNetworkCookieJar::setAllCookies;
using QNetworkCookieJar::allCookies;
- bool save(const QString &fileName);
- bool restore(const QString &fileName);
-
signals:
void newCookiesForUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url);
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index c7c4c7486..7db12487b 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -7,7 +7,6 @@ owncloud_add_test(OwnSql)
owncloud_add_test(SyncJournalDB)
owncloud_add_test(SyncFileItem)
owncloud_add_test(ConcatUrl)
-owncloud_add_test(Cookies)
owncloud_add_test(XmlParse)
owncloud_add_test(ChecksumValidator)
diff --git a/test/testcookies.cpp b/test/testcookies.cpp
deleted file mode 100644
index a5053abd9..000000000
--- a/test/testcookies.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- This software is in the public domain, furnished "as is", without technical
- support, and with no warranty, express or implied, as to its usefulness for
- any purpose.
-*/
-
-#include <QtTest>
-
-#include "libsync/cookiejar.h"
-
-using namespace OCC;
-
-class TestCookies : public QObject
-{
- Q_OBJECT
-
-private slots:
- void testCookies()
- {
- QTemporaryDir tmp;
- const QString nonexistingPath = tmp.filePath("someNonexistingDir/test.db");
- QNetworkCookie cookieA = QNetworkCookie("foo", "bar");
- // tomorrow rounded
- cookieA.setExpirationDate(QDateTime(QDateTime::currentDateTimeUtc().addDays(1).date()));
- const QList<QNetworkCookie> cookies = {cookieA, QNetworkCookie("foo2", "bar")};
- CookieJar jar;
- jar.setAllCookies(cookies);
- QCOMPARE(cookies, jar.allCookies());
- QVERIFY(jar.save(tmp.filePath("test.db")));
- // ensure we are able to create a cookie jar in a non exisitning folder (mkdir)
- QVERIFY(jar.save(nonexistingPath));
-
- CookieJar jar2;
- QVERIFY(jar2.restore(nonexistingPath));
- // here we should have only cookieA as the second one was a session cookie
- QCOMPARE(QList<QNetworkCookie>{cookieA}, jar2.allCookies());
-
- }
-
-};
-
-QTEST_APPLESS_MAIN(TestCookies)
-#include "testcookies.moc"