• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KIOSlave

  • kioslave
  • http
  • kcookiejar
kcookiejar.h
Go to the documentation of this file.
1/*
2 This file is part of the KDE File Manager
3
4 Copyright (C) 1998 Waldo Bastian (bastian@kde.org)
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public License
8 as published by the Free Software Foundation; either
9 version 2, or (at your option) version 3.
10
11 This software is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this library; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA.
20*/
21//----------------------------------------------------------------------------
22//
23// KDE File Manager -- HTTP Cookies
24
25#ifndef KCOOKIEJAR_H
26#define KCOOKIEJAR_H
27
28#include <QtCore/QString>
29#include <QtCore/QStringList>
30#include <QtCore/QHash>
31#include <QtCore/QSet>
32
33class KConfig;
34class KCookieJar;
35class KHttpCookie;
36class KHttpCookieList;
37
38typedef KHttpCookie *KHttpCookiePtr;
39
40enum KCookieAdvice
41{
42 KCookieDunno=0,
43 KCookieAccept,
44 KCookieAcceptForSession,
45 KCookieReject,
46 KCookieAsk
47};
48
49class KHttpCookie
50{
51 friend class KCookieJar;
52 friend class KHttpCookieList;
53 friend QDebug operator<<(QDebug, const KHttpCookie&); // for cookieStr()
54
55protected:
56 QString mHost;
57 QString mDomain;
58 QString mPath;
59 QString mName;
60 QString mValue;
61 qint64 mExpireDate;
62 int mProtocolVersion;
63 bool mSecure;
64 bool mCrossDomain;
65 bool mHttpOnly;
66 bool mExplicitPath;
67 QList<long> mWindowIds;
68 QList<int> mPorts;
69 KCookieAdvice mUserSelectedAdvice;
70
71 QString cookieStr(bool useDOMFormat) const;
72
73public:
74 explicit KHttpCookie(const QString &_host=QString(),
75 const QString &_domain=QString(),
76 const QString &_path=QString(),
77 const QString &_name=QString(),
78 const QString &_value=QString(),
79 qint64 _expireDate=0,
80 int _protocolVersion=0,
81 bool _secure = false,
82 bool _httpOnly = false,
83 bool _explicitPath = false);
84
85 QString domain() const { return mDomain; }
86 QString host() const { return mHost; }
87 QString path() const { return mPath; }
88 QString name() const { return mName; }
89 QString value() const { return mValue; }
90 QList<long> &windowIds() { return mWindowIds; }
91 const QList<long> &windowIds() const { return mWindowIds; }
92 const QList<int> &ports() const { return mPorts; }
93 void fixDomain(const QString &domain) { mDomain = domain; }
94 qint64 expireDate() const { return mExpireDate; }
95 int protocolVersion() const { return mProtocolVersion; }
96 bool isSecure() const { return mSecure; }
101 bool isExpired(qint64 currentDate = -1) const;
102 bool isCrossDomain() const { return mCrossDomain; }
103 bool isHttpOnly() const { return mHttpOnly; }
104 bool hasExplicitPath() const { return mExplicitPath; }
105 bool match(const QString &fqdn, const QStringList &domainList, const QString &path, int port=-1) const;
106
107 KCookieAdvice getUserSelectedAdvice() const { return mUserSelectedAdvice; }
108 void setUserSelectedAdvice(KCookieAdvice advice) { mUserSelectedAdvice = advice; }
109};
110
111QDebug operator<<(QDebug, const KHttpCookie&);
112
113class KHttpCookieList : public QList<KHttpCookie>
114{
115public:
116 KHttpCookieList() : QList<KHttpCookie>(), advice( KCookieDunno )
117 { }
118 virtual ~KHttpCookieList() { }
119
120 KCookieAdvice getAdvice() const { return advice; }
121 void setAdvice(KCookieAdvice _advice) { advice = _advice; }
122
123private:
124 KCookieAdvice advice;
125};
126
127QDebug operator<<(QDebug, const KHttpCookieList&);
128
129class KCookieJar
130{
131public:
137 KCookieJar();
138
144 ~KCookieJar();
145
149 bool changed() const { return m_cookiesChanged || m_configChanged; }
150
154 bool saveCookies(const QString &_filename);
155
159 bool loadCookies(const QString &_filename);
160
164 void saveConfig(KConfig *_config);
165
169 void loadConfig(KConfig *_config, bool reparse = false);
170
182 QString findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies=0);
183
192 KHttpCookieList makeCookies(const QString &_url, const QByteArray &cookie_headers, long windowId);
193
202 KHttpCookieList makeDOMCookies(const QString &_url, const QByteArray &cookie_domstr, long windowId);
203
207 void addCookie(KHttpCookie &cookie);
208
214 bool cookieIsPersistent(const KHttpCookie& cookie) const;
215
229 KCookieAdvice cookieAdvice(const KHttpCookie& cookie) const;
230
241 KCookieAdvice getDomainAdvice(const QString &_domain) const;
242
254 void setDomainAdvice(const QString &_domain, KCookieAdvice _advice);
255
267 void setDomainAdvice(const KHttpCookie& _cookie, KCookieAdvice _advice);
268
280 KCookieAdvice getGlobalAdvice() const { return m_globalAdvice; }
281
293 void setGlobalAdvice(KCookieAdvice _advice);
294
301 const QStringList& getDomainList();
302
306 KHttpCookieList *getCookieList(const QString & _domain,
307 const QString& _fqdn );
308
316 void eatCookie(KHttpCookieList::iterator cookieIterator);
317
321 void eatCookiesForDomain(const QString &domain);
322
326 void eatAllCookies();
327
332 void eatSessionCookies( long windowId );
333
338 void eatSessionCookies( const QString& fqdn, long windowId, bool isFQDN = true );
339
343 static bool parseUrl(const QString &_url, QString &_fqdn, QString &_path, int *port = 0);
344
350 void extractDomains(const QString &_fqdn,
351 QStringList &_domainList) const;
352
353 static QString adviceToStr(KCookieAdvice _advice);
354 static KCookieAdvice strToAdvice(const QString &_str);
355
356 enum KCookieDefaultPolicy {
357 ApplyToShownCookiesOnly = 0,
358 ApplyToCookiesFromDomain = 1,
359 ApplyToAllCookies = 2
360 };
362 KCookieDefaultPolicy preferredDefaultPolicy() const { return m_preferredPolicy; }
363
365 bool showCookieDetails () const { return m_showCookieDetails; }
366
370 void setPreferredDefaultPolicy (KCookieDefaultPolicy value) { m_preferredPolicy = value; }
371
376 void setShowCookieDetails (bool value) { m_showCookieDetails = value; }
377
378protected:
379 void stripDomain(const QString &_fqdn, QString &_domain) const;
380 QString stripDomain(const KHttpCookie& cookie) const;
381
382protected:
383 QStringList m_domainList;
384 KCookieAdvice m_globalAdvice;
385 QHash<QString, KHttpCookieList*> m_cookieDomains;
386 QSet<QString> m_twoLevelTLD;
387 QSet<QString> m_gTLDs;
388
389 bool m_configChanged;
390 bool m_cookiesChanged;
391 bool m_showCookieDetails;
392 bool m_rejectCrossDomainCookies;
393 bool m_autoAcceptSessionCookies;
394
395 KCookieDefaultPolicy m_preferredPolicy;
396};
397#endif
KConfig
KCookieJar
Definition: kcookiejar.h:130
KCookieJar::eatSessionCookies
void eatSessionCookies(long windowId)
Removes all end of session cookies set by the session windId.
Definition: kcookiejar.cpp:1196
KCookieJar::getCookieList
KHttpCookieList * getCookieList(const QString &_domain, const QString &_fqdn)
Get a list of all cookies in the cookie jar originating from _domain.
Definition: kcookiejar.cpp:1144
KCookieJar::m_globalAdvice
KCookieAdvice m_globalAdvice
Definition: kcookiejar.h:384
KCookieJar::getDomainAdvice
KCookieAdvice getDomainAdvice(const QString &_domain) const
This function gets the advice for all cookies originating from _domain.
Definition: kcookiejar.cpp:1063
KCookieJar::m_gTLDs
QSet< QString > m_gTLDs
Definition: kcookiejar.h:387
KCookieJar::strToAdvice
static KCookieAdvice strToAdvice(const QString &_str)
Definition: kcookiejar.cpp:143
KCookieJar::extractDomains
void extractDomains(const QString &_fqdn, QStringList &_domainList) const
Returns a list of domains in _domainList relevant for this host.
Definition: kcookiejar.cpp:594
KCookieJar::adviceToStr
static QString adviceToStr(KCookieAdvice _advice)
Definition: kcookiejar.cpp:131
KCookieJar::saveConfig
void saveConfig(KConfig *_config)
Save the cookie configuration.
Definition: kcookiejar.cpp:1494
KCookieJar::saveCookies
bool saveCookies(const QString &_filename)
Store all the cookies in a safe(?) place.
Definition: kcookiejar.cpp:1267
KCookieJar::cookieAdvice
KCookieAdvice cookieAdvice(const KHttpCookie &cookie) const
This function advices whether a single KHttpCookie object should be added to the cookie jar.
Definition: kcookiejar.cpp:1010
KCookieJar::~KCookieJar
~KCookieJar()
Destructs the cookie jar.
Definition: kcookiejar.cpp:308
KCookieJar::eatCookie
void eatCookie(KHttpCookieList::iterator cookieIterator)
Remove & delete a cookie from the jar.
Definition: kcookiejar.cpp:1161
KCookieJar::getDomainList
const QStringList & getDomainList()
Get a list of all domains known to the cookie jar.
Definition: kcookiejar.cpp:1136
KCookieJar::setPreferredDefaultPolicy
void setPreferredDefaultPolicy(KCookieDefaultPolicy value)
Sets the user's default preference cookie policy.
Definition: kcookiejar.h:370
KCookieJar::m_cookieDomains
QHash< QString, KHttpCookieList * > m_cookieDomains
Definition: kcookiejar.h:385
KCookieJar::m_twoLevelTLD
QSet< QString > m_twoLevelTLD
Definition: kcookiejar.h:386
KCookieJar::m_domainList
QStringList m_domainList
Definition: kcookiejar.h:383
KCookieJar::m_rejectCrossDomainCookies
bool m_rejectCrossDomainCookies
Definition: kcookiejar.h:392
KCookieJar::stripDomain
void stripDomain(const QString &_fqdn, QString &_domain) const
Definition: kcookiejar.cpp:547
KCookieJar::KCookieJar
KCookieJar()
Constructs a new cookie jar.
Definition: kcookiejar.cpp:291
KCookieJar::preferredDefaultPolicy
KCookieDefaultPolicy preferredDefaultPolicy() const
Returns the user's choice in the cookie window.
Definition: kcookiejar.h:362
KCookieJar::addCookie
void addCookie(KHttpCookie &cookie)
This function hands a KHttpCookie object over to the cookie jar.
Definition: kcookiejar.cpp:934
KCookieJar::m_preferredPolicy
KCookieDefaultPolicy m_preferredPolicy
Definition: kcookiejar.h:395
KCookieJar::setDomainAdvice
void setDomainAdvice(const QString &_domain, KCookieAdvice _advice)
This function sets the advice for all cookies originating from _domain.
Definition: kcookiejar.cpp:1080
KCookieJar::m_cookiesChanged
bool m_cookiesChanged
Definition: kcookiejar.h:390
KCookieJar::eatCookiesForDomain
void eatCookiesForDomain(const QString &domain)
Remove & delete all cookies for domain.
Definition: kcookiejar.cpp:1181
KCookieJar::findCookies
QString findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies=0)
Looks for cookies in the cookie jar which are appropriate for _url.
Definition: kcookiejar.cpp:350
KCookieJar::eatAllCookies
void eatAllCookies()
Remove & delete all cookies.
Definition: kcookiejar.cpp:1205
KCookieJar::m_autoAcceptSessionCookies
bool m_autoAcceptSessionCookies
Definition: kcookiejar.h:393
KCookieJar::cookieIsPersistent
bool cookieIsPersistent(const KHttpCookie &cookie) const
This function tells whether a single KHttpCookie object should be considered persistent.
Definition: kcookiejar.cpp:1046
KCookieJar::getGlobalAdvice
KCookieAdvice getGlobalAdvice() const
Get the global advice for cookies.
Definition: kcookiejar.h:280
KCookieJar::loadConfig
void loadConfig(KConfig *_config, bool reparse=false)
Load the cookie configuration.
Definition: kcookiejar.cpp:1527
KCookieJar::m_showCookieDetails
bool m_showCookieDetails
Definition: kcookiejar.h:391
KCookieJar::loadCookies
bool loadCookies(const QString &_filename)
Load all the cookies from file and add them to the cookie jar.
Definition: kcookiejar.cpp:1390
KCookieJar::setShowCookieDetails
void setShowCookieDetails(bool value)
Sets the user's preference of level of detail displayed by the cookie dialog.
Definition: kcookiejar.h:376
KCookieJar::makeDOMCookies
KHttpCookieList makeDOMCookies(const QString &_url, const QByteArray &cookie_domstr, long windowId)
This function parses cookie_headers and returns a linked list of valid KHttpCookie objects for all co...
Definition: kcookiejar.cpp:863
KCookieJar::showCookieDetails
bool showCookieDetails() const
Returns the.
Definition: kcookiejar.h:365
KCookieJar::changed
bool changed() const
Returns whether the cookiejar has been changed.
Definition: kcookiejar.h:149
KCookieJar::makeCookies
KHttpCookieList makeCookies(const QString &_url, const QByteArray &cookie_headers, long windowId)
This function parses cookie_headers and returns a linked list of valid KHttpCookie objects for all co...
Definition: kcookiejar.cpp:665
KCookieJar::setGlobalAdvice
void setGlobalAdvice(KCookieAdvice _advice)
This function sets the global advice for cookies.
Definition: kcookiejar.cpp:1126
KCookieJar::m_configChanged
bool m_configChanged
Definition: kcookiejar.h:389
KCookieJar::KCookieDefaultPolicy
KCookieDefaultPolicy
Definition: kcookiejar.h:356
KCookieJar::ApplyToCookiesFromDomain
@ ApplyToCookiesFromDomain
Definition: kcookiejar.h:358
KCookieJar::ApplyToAllCookies
@ ApplyToAllCookies
Definition: kcookiejar.h:359
KCookieJar::ApplyToShownCookiesOnly
@ ApplyToShownCookiesOnly
Definition: kcookiejar.h:357
KCookieJar::parseUrl
static bool parseUrl(const QString &_url, QString &_fqdn, QString &_path, int *port=0)
Parses _url and returns the FQDN (_fqdn) and path (_path).
Definition: kcookiejar.cpp:569
KHttpCookieList
Definition: kcookiejar.h:114
KHttpCookieList::~KHttpCookieList
virtual ~KHttpCookieList()
Definition: kcookiejar.h:118
KHttpCookieList::getAdvice
KCookieAdvice getAdvice() const
Definition: kcookiejar.h:120
KHttpCookieList::setAdvice
void setAdvice(KCookieAdvice _advice)
Definition: kcookiejar.h:121
KHttpCookieList::KHttpCookieList
KHttpCookieList()
Definition: kcookiejar.h:116
KHttpCookie
Definition: kcookiejar.h:50
KHttpCookie::domain
QString domain() const
Definition: kcookiejar.h:85
KHttpCookie::isCrossDomain
bool isCrossDomain() const
Definition: kcookiejar.h:102
KHttpCookie::protocolVersion
int protocolVersion() const
Definition: kcookiejar.h:95
KHttpCookie::mValue
QString mValue
Definition: kcookiejar.h:60
KHttpCookie::mProtocolVersion
int mProtocolVersion
Definition: kcookiejar.h:62
KHttpCookie::mHttpOnly
bool mHttpOnly
Definition: kcookiejar.h:65
KHttpCookie::match
bool match(const QString &fqdn, const QStringList &domainList, const QString &path, int port=-1) const
Definition: kcookiejar.cpp:238
KHttpCookie::value
QString value() const
Definition: kcookiejar.h:89
KHttpCookie::cookieStr
QString cookieStr(bool useDOMFormat) const
Definition: kcookiejar.cpp:207
KHttpCookie::operator<<
friend QDebug operator<<(QDebug, const KHttpCookie &)
Definition: kcookiejar.cpp:1562
KHttpCookie::getUserSelectedAdvice
KCookieAdvice getUserSelectedAdvice() const
Definition: kcookiejar.h:107
KHttpCookie::mUserSelectedAdvice
KCookieAdvice mUserSelectedAdvice
Definition: kcookiejar.h:69
KHttpCookie::mSecure
bool mSecure
Definition: kcookiejar.h:63
KHttpCookie::ports
const QList< int > & ports() const
Definition: kcookiejar.h:92
KHttpCookie::isExpired
bool isExpired(qint64 currentDate=-1) const
If currentDate is -1, the default, then the current timestamp in UTC is used for comparison against t...
Definition: kcookiejar.cpp:196
KHttpCookie::host
QString host() const
Definition: kcookiejar.h:86
KHttpCookie::fixDomain
void fixDomain(const QString &domain)
Definition: kcookiejar.h:93
KHttpCookie::mDomain
QString mDomain
Definition: kcookiejar.h:57
KHttpCookie::mCrossDomain
bool mCrossDomain
Definition: kcookiejar.h:64
KHttpCookie::mExplicitPath
bool mExplicitPath
Definition: kcookiejar.h:66
KHttpCookie::windowIds
const QList< long > & windowIds() const
Definition: kcookiejar.h:91
KHttpCookie::isSecure
bool isSecure() const
Definition: kcookiejar.h:96
KHttpCookie::mPorts
QList< int > mPorts
Definition: kcookiejar.h:68
KHttpCookie::mName
QString mName
Definition: kcookiejar.h:59
KHttpCookie::mExpireDate
qint64 mExpireDate
Definition: kcookiejar.h:61
KHttpCookie::mPath
QString mPath
Definition: kcookiejar.h:58
KHttpCookie::hasExplicitPath
bool hasExplicitPath() const
Definition: kcookiejar.h:104
KHttpCookie::mHost
QString mHost
Definition: kcookiejar.h:56
KHttpCookie::path
QString path() const
Definition: kcookiejar.h:87
KHttpCookie::isHttpOnly
bool isHttpOnly() const
Definition: kcookiejar.h:103
KHttpCookie::mWindowIds
QList< long > mWindowIds
Definition: kcookiejar.h:67
KHttpCookie::setUserSelectedAdvice
void setUserSelectedAdvice(KCookieAdvice advice)
Definition: kcookiejar.h:108
KHttpCookie::expireDate
qint64 expireDate() const
Definition: kcookiejar.h:94
KHttpCookie::name
QString name() const
Definition: kcookiejar.h:88
KHttpCookie::windowIds
QList< long > & windowIds()
Definition: kcookiejar.h:90
QHash
QList
QSet
KHttpCookiePtr
KHttpCookie * KHttpCookiePtr
Definition: kcookiejar.h:38
operator<<
QDebug operator<<(QDebug, const KHttpCookie &)
Definition: kcookiejar.cpp:1562
KCookieAdvice
KCookieAdvice
Definition: kcookiejar.h:41
KCookieAcceptForSession
@ KCookieAcceptForSession
Definition: kcookiejar.h:44
KCookieAsk
@ KCookieAsk
Definition: kcookiejar.h:46
KCookieAccept
@ KCookieAccept
Definition: kcookiejar.h:43
KCookieReject
@ KCookieReject
Definition: kcookiejar.h:45
KCookieDunno
@ KCookieDunno
Definition: kcookiejar.h:42
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KIOSlave

Skip menu "KIOSlave"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal