mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
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.
This commit is contained in:
parent
317d3735d7
commit
f073997aee
@ -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());
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user