Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QNetworkCookieJar Class Reference

The QNetworkCookieJar class implements a simple jar of QNetworkCookie objects. More...

#include <qnetworkcookiejar.h>

+ Inheritance diagram for QNetworkCookieJar:
+ Collaboration diagram for QNetworkCookieJar:

Public Member Functions

 QNetworkCookieJar (QObject *parent=nullptr)
 Creates a QNetworkCookieJar object and sets the parent object to be parent.
 
virtual ~QNetworkCookieJar ()
 Destroys this cookie jar object and discards all cookies stored in it.
 
virtual QList< QNetworkCookiecookiesForUrl (const QUrl &url) const
 Returns the cookies to be added to when a request is sent to url.
 
virtual bool setCookiesFromUrl (const QList< QNetworkCookie > &cookieList, const QUrl &url)
 Adds the cookies in the list cookieList to this cookie jar.
 
virtual bool insertCookie (const QNetworkCookie &cookie)
 
virtual bool updateCookie (const QNetworkCookie &cookie)
 
virtual bool deleteCookie (const QNetworkCookie &cookie)
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Protected Member Functions

QList< QNetworkCookieallCookies () const
 Returns all cookies stored in this cookie jar.
 
void setAllCookies (const QList< QNetworkCookie > &cookieList)
 Sets the internal list of cookies held by this cookie jar to be cookieList.
 
virtual bool validateCookie (const QNetworkCookie &cookie, const QUrl &url) const
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Detailed Description

The QNetworkCookieJar class implements a simple jar of QNetworkCookie objects.

Since
4.4 \inmodule QtNetwork

Cookies are small bits of information that stateless protocols like HTTP use to maintain some persistent information across requests.

A cookie is set by a remote server when it replies to a request and it expects the same cookie to be sent back when further requests are sent.

The cookie jar is the object that holds all cookies set in previous requests. Web browsers save their cookie jars to disk in order to conserve permanent cookies across invocations of the application.

QNetworkCookieJar does not implement permanent storage: it only keeps the cookies in memory. Once the QNetworkCookieJar object is deleted, all cookies it held will be discarded as well. If you want to save the cookies, you should derive from this class and implement the saving to disk to your own storage format.

This class implements only the basic security recommended by the cookie specifications and does not implement any cookie acceptance policy (it accepts all cookies set by any requests). In order to override those rules, you should reimplement the cookiesForUrl() and setCookiesFromUrl() virtual functions. They are called by QNetworkReply and QNetworkAccessManager when they detect new cookies and when they require cookies.

See also
QNetworkCookie, QNetworkAccessManager, QNetworkReply, QNetworkRequest, QNetworkAccessManager::setCookieJar()

Definition at line 17 of file qnetworkcookiejar.h.

Constructor & Destructor Documentation

◆ QNetworkCookieJar()

QNetworkCookieJar::QNetworkCookieJar ( QObject * parent = nullptr)
explicit

Creates a QNetworkCookieJar object and sets the parent object to be parent.

The cookie jar is initialized to empty.

Definition at line 71 of file qnetworkcookiejar.cpp.

◆ ~QNetworkCookieJar()

QNetworkCookieJar::~QNetworkCookieJar ( )
virtual

Destroys this cookie jar object and discards all cookies stored in it.

Cookies are not saved to disk in the QNetworkCookieJar default implementation.

If you need to save the cookies to disk, you have to derive from QNetworkCookieJar and save the cookies to disk yourself.

Definition at line 84 of file qnetworkcookiejar.cpp.

Member Function Documentation

◆ allCookies()

QList< QNetworkCookie > QNetworkCookieJar::allCookies ( ) const
protected

Returns all cookies stored in this cookie jar.

This function is suitable for derived classes to save cookies to disk, as well as to implement cookie expiration and other policies.

See also
setAllCookies(), cookiesForUrl()

Definition at line 95 of file qnetworkcookiejar.cpp.

◆ cookiesForUrl()

QList< QNetworkCookie > QNetworkCookieJar::cookiesForUrl ( const QUrl & url) const
virtual

Returns the cookies to be added to when a request is sent to url.

This function is called by the default QNetworkAccessManager::createRequest(), which adds the cookies returned by this function to the request being sent.

If more than one cookie with the same name is found, but with differing paths, the one with longer path is returned before the one with shorter path. In other words, this function returns cookies sorted decreasingly by path length.

The default QNetworkCookieJar class implements only a very basic security policy (it makes sure that the cookies' domain and path match the reply's). To enhance the security policy with your own algorithms, override cookiesForUrl().

See also
setCookiesFromUrl(), QNetworkAccessManager::setCookieJar()

Qt6?: remove when compliant with RFC6265

Definition at line 193 of file qnetworkcookiejar.cpp.

References c2, QStringView::contains(), QDateTime::currentDateTimeUtc(), d, QUrl::host(), isEncrypted(), isParentDomain(), isParentPath(), now, QUrl::path(), qIsEffectiveTLD(), QUrl::scheme(), QStringView::sliced(), QStringView::startsWith(), and url.

+ Here is the call graph for this function:

◆ deleteCookie()

bool QNetworkCookieJar::deleteCookie ( const QNetworkCookie & cookie)
virtual
Since
5.0 Deletes from cookie jar the cookie found to have the same identifier as cookie.

Returns true if a cookie was deleted, false otherwise.

See also
QNetworkCookie::hasSameIdentifier()

Definition at line 288 of file qnetworkcookiejar.cpp.

References QSet< T >::cend(), d, and it.

Referenced by insertCookie(), and updateCookie().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ insertCookie()

bool QNetworkCookieJar::insertCookie ( const QNetworkCookie & cookie)
virtual
Since
5.0 Adds cookie to this cookie jar.

Returns true if cookie was added, false otherwise.

If a cookie with the same identifier already exists in the cookie jar, it will be overridden.

Definition at line 247 of file qnetworkcookiejar.cpp.

References QDateTime::currentDateTimeUtc(), d, deleteCookie(), QNetworkCookie::expirationDate(), QNetworkCookie::isSessionCookie(), and now.

Referenced by setCookiesFromUrl(), and updateCookie().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAllCookies()

void QNetworkCookieJar::setAllCookies ( const QList< QNetworkCookie > & cookieList)
protected

Sets the internal list of cookies held by this cookie jar to be cookieList.

This function is suitable for derived classes to implement loading cookies from permanent storage, or their own cookie acceptance policies by reimplementing setCookiesFromUrl().

See also
allCookies(), setCookiesFromUrl()

Definition at line 109 of file qnetworkcookiejar.cpp.

References d.

◆ setCookiesFromUrl()

bool QNetworkCookieJar::setCookiesFromUrl ( const QList< QNetworkCookie > & cookieList,
const QUrl & url )
virtual

Adds the cookies in the list cookieList to this cookie jar.

Before being inserted cookies are normalized.

Returns true if one or more cookies are set for url, otherwise false.

If a cookie already exists in the cookie jar, it will be overridden by those in cookieList.

The default QNetworkCookieJar class implements only a very basic security policy (it makes sure that the cookies' domain and path match the reply's). To enhance the security policy with your own algorithms, override setCookiesFromUrl().

Also, QNetworkCookieJar does not have a maximum cookie jar size. Reimplement this function to discard older cookies to create room for new ones.

See also
cookiesForUrl(), QNetworkAccessManager::setCookieJar(), QNetworkCookie::normalize()

Definition at line 163 of file qnetworkcookiejar.cpp.

References insertCookie(), url, and validateCookie().

Referenced by QNetworkReplyHttpImplPrivate::_q_metaDataChanged(), and QNetworkReplyImplPrivate::metaDataChanged().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateCookie()

bool QNetworkCookieJar::updateCookie ( const QNetworkCookie & cookie)
virtual
Since
5.0 If a cookie with the same identifier as cookie exists in this cookie jar it will be updated. This function uses insertCookie().

Returns true if cookie was updated, false if no cookie in the jar matches the identifier of cookie.

See also
QNetworkCookie::hasSameIdentifier()

Definition at line 273 of file qnetworkcookiejar.cpp.

References deleteCookie(), and insertCookie().

+ Here is the call graph for this function:

◆ validateCookie()

bool QNetworkCookieJar::validateCookie ( const QNetworkCookie & cookie,
const QUrl & url ) const
protectedvirtual
Since
5.0 Returns true if the domain and path of cookie are valid, false otherwise. The url parameter is used to determine if the domain specified in the cookie is allowed.

Definition at line 306 of file qnetworkcookiejar.cpp.

References QNetworkCookie::domain(), QUrl::host(), isParentDomain(), qIsEffectiveTLD(), QStringView::sliced(), QStringView::startsWith(), and url.

Referenced by setCookiesFromUrl().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following files: