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-13 12:32:08 +0300
committerHannah von Reth <vonreth@kde.org>2022-05-13 14:08:30 +0300
commite8064c05e88b40c6640555aa470fa5e29cd0de0a (patch)
tree6b7b67dda655619fdcede126f39bedd2314a4318 /src/libsync
parent81275b5e94860634eb6a126f2cc7aa33846d4131 (diff)
Improve the cookie stuff
Diffstat (limited to 'src/libsync')
-rw-r--r--src/libsync/accessmanager.cpp7
-rw-r--r--src/libsync/accessmanager.h3
-rw-r--r--src/libsync/account.cpp5
-rw-r--r--src/libsync/cookiejar.cpp33
-rw-r--r--src/libsync/cookiejar.h10
5 files changed, 12 insertions, 46 deletions
diff --git a/src/libsync/accessmanager.cpp b/src/libsync/accessmanager.cpp
index aa4db4cba..2b11558a6 100644
--- a/src/libsync/accessmanager.cpp
+++ b/src/libsync/accessmanager.cpp
@@ -114,4 +114,11 @@ void AccessManager::addCustomTrustedCaCertificates(const QList<QSslCertificate>
clearConnectionCache();
}
+CookieJar *AccessManager::ownCloudCookieJar() const
+{
+ auto jar = qobject_cast<CookieJar *>(cookieJar());
+ Q_ASSERT(jar);
+ return jar;
+}
+
} // namespace OCC
diff --git a/src/libsync/accessmanager.h b/src/libsync/accessmanager.h
index 30e6ed389..97d75f228 100644
--- a/src/libsync/accessmanager.h
+++ b/src/libsync/accessmanager.h
@@ -22,6 +22,7 @@ class QByteArray;
class QUrl;
namespace OCC {
+class CookieJar;
/**
* @brief The AccessManager class
@@ -47,6 +48,8 @@ public:
*/
void addCustomTrustedCaCertificates(const QList<QSslCertificate> &certificates);
+ CookieJar *ownCloudCookieJar() const;
+
protected:
QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData = nullptr) override;
diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp
index e11c9f3a3..0b5c69046 100644
--- a/src/libsync/account.cpp
+++ b/src/libsync/account.cpp
@@ -193,10 +193,9 @@ QUrl Account::davUrl() const
*/
void Account::clearCookieJar()
{
- auto jar = qobject_cast<CookieJar *>(_am->cookieJar());
- OC_ASSERT(jar);
qCInfo(lcAccount) << "Clearing cookies";
- jar->setAllCookies(QList<QNetworkCookie>());
+ _am->cookieJar()->deleteLater();
+ _am->setCookieJar(new CookieJar);
}
AccessManager *Account::accessManager()
diff --git a/src/libsync/cookiejar.cpp b/src/libsync/cookiejar.cpp
index 72d3f4cbb..1ff1faec0 100644
--- a/src/libsync/cookiejar.cpp
+++ b/src/libsync/cookiejar.cpp
@@ -36,37 +36,4 @@ CookieJar::~CookieJar()
{
}
-bool CookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
-{
- if (QNetworkCookieJar::setCookiesFromUrl(cookieList, url)) {
- Q_EMIT newCookiesForUrl(cookieList, url);
- return true;
- }
-
- return false;
-}
-
-QList<QNetworkCookie> CookieJar::cookiesForUrl(const QUrl &url) const
-{
- QList<QNetworkCookie> cookies = QNetworkCookieJar::cookiesForUrl(url);
- qCDebug(lcCookieJar) << url << "requests:" << cookies;
- return cookies;
-}
-
-void CookieJar::clearSessionCookies()
-{
- setAllCookies(removeExpired(allCookies()));
-}
-
-QList<QNetworkCookie> CookieJar::removeExpired(const QList<QNetworkCookie> &cookies)
-{
- QList<QNetworkCookie> updatedList;
- for (const auto &cookie : cookies) {
- if (cookie.expirationDate() > QDateTime::currentDateTimeUtc() && !cookie.isSessionCookie()) {
- updatedList << cookie;
- }
- }
- return updatedList;
-}
-
} // namespace OCC
diff --git a/src/libsync/cookiejar.h b/src/libsync/cookiejar.h
index 2346f1b4a..ca9908d32 100644
--- a/src/libsync/cookiejar.h
+++ b/src/libsync/cookiejar.h
@@ -31,19 +31,9 @@ class OWNCLOUDSYNC_EXPORT CookieJar : public QNetworkCookieJar
public:
explicit CookieJar(QObject *parent = nullptr);
~CookieJar() override;
- bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url) override;
- QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const override;
-
- void clearSessionCookies();
using QNetworkCookieJar::setAllCookies;
using QNetworkCookieJar::allCookies;
-
-signals:
- void newCookiesForUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url);
-
-private:
- QList<QNetworkCookie> removeExpired(const QList<QNetworkCookie> &cookies);
};
} // namespace OCC