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

KIOSlave

  • sources
  • kde-4.12
  • kdelibs
  • 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 
33 class KConfig;
34 class KCookieJar;
35 class KHttpCookie;
36 class KHttpCookieList;
37 
38 typedef KHttpCookie *KHttpCookiePtr;
39 
40 enum KCookieAdvice
41 {
42  KCookieDunno=0,
43  KCookieAccept,
44  KCookieAcceptForSession,
45  KCookieReject,
46  KCookieAsk
47 };
48 
49 class KHttpCookie
50 {
51  friend class KCookieJar;
52  friend class KHttpCookieList;
53  friend QDebug operator<<(QDebug, const KHttpCookie&); // for cookieStr()
54 
55 protected:
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 
73 public:
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 
111 QDebug operator<<(QDebug, const KHttpCookie&);
112 
113 class KHttpCookieList : public QList<KHttpCookie>
114 {
115 public:
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 
123 private:
124  KCookieAdvice advice;
125 };
126 
127 QDebug operator<<(QDebug, const KHttpCookieList&);
128 
129 class KCookieJar
130 {
131 public:
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 
378 protected:
379  void stripDomain(const QString &_fqdn, QString &_domain) const;
380  QString stripDomain(const KHttpCookie& cookie) const;
381 
382 protected:
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
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
KHttpCookie::expireDate
qint64 expireDate() const
Definition: kcookiejar.h:94
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
KHttpCookie::match
bool match(const QString &fqdn, const QStringList &domainList, const QString &path, int port=-1) const
Definition: kcookiejar.cpp:238
qint64
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::ApplyToCookiesFromDomain
Definition: kcookiejar.h:358
KHttpCookie::protocolVersion
int protocolVersion() const
Definition: kcookiejar.h:95
KCookieJar::strToAdvice
static KCookieAdvice strToAdvice(const QString &_str)
Definition: kcookiejar.cpp:143
KCookieJar::setShowCookieDetails
void setShowCookieDetails(bool value)
Sets the user's preference of level of detail displayed by the cookie dialog.
Definition: kcookiejar.h:376
KHttpCookie::host
QString host() const
Definition: kcookiejar.h:86
KHttpCookie
Definition: kcookiejar.h:49
KCookieJar::m_showCookieDetails
bool m_showCookieDetails
Definition: kcookiejar.h:391
KCookieJar::m_domainList
QStringList m_domainList
Definition: kcookiejar.h:383
KCookieJar::getGlobalAdvice
KCookieAdvice getGlobalAdvice() const
Get the global advice for cookies.
Definition: kcookiejar.h:280
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
KCookieAccept
Definition: kcookiejar.h:43
KHttpCookie::KHttpCookie
KHttpCookie(const QString &_host=QString(), const QString &_domain=QString(), const QString &_path=QString(), const QString &_name=QString(), const QString &_value=QString(), qint64 _expireDate=0, int _protocolVersion=0, bool _secure=false, bool _httpOnly=false, bool _explicitPath=false)
Definition: kcookiejar.cpp:168
KHttpCookie::fixDomain
void fixDomain(const QString &domain)
Definition: kcookiejar.h:93
QString
QHash< QString, KHttpCookieList * >
KCookieJar::stripDomain
void stripDomain(const QString &_fqdn, QString &_domain) const
Definition: kcookiejar.cpp:547
KHttpCookie::cookieStr
QString cookieStr(bool useDOMFormat) const
Definition: kcookiejar.cpp:207
KHttpCookie::mWindowIds
QList< long > mWindowIds
Definition: kcookiejar.h:67
KHttpCookie::value
QString value() const
Definition: kcookiejar.h:89
KHttpCookiePtr
KHttpCookie * KHttpCookiePtr
Definition: kcookiejar.h:36
KCookieJar::m_configChanged
bool m_configChanged
Definition: kcookiejar.h:389
KCookieJar::ApplyToAllCookies
Definition: kcookiejar.h:359
KCookieJar::eatAllCookies
void eatAllCookies()
Remove & delete all cookies.
Definition: kcookiejar.cpp:1205
KHttpCookie::name
QString name() const
Definition: kcookiejar.h:88
KCookieJar::m_twoLevelTLD
QSet< QString > m_twoLevelTLD
Definition: kcookiejar.h:386
KHttpCookieList::~KHttpCookieList
virtual ~KHttpCookieList()
Definition: kcookiejar.h:118
KCookieReject
Definition: kcookiejar.h:45
KHttpCookie::mPorts
QList< int > mPorts
Definition: kcookiejar.h:68
KCookieJar::showCookieDetails
bool showCookieDetails() const
Returns the.
Definition: kcookiejar.h:365
KCookieJar::addCookie
void addCookie(KHttpCookie &cookie)
This function hands a KHttpCookie object over to the cookie jar.
Definition: kcookiejar.cpp:934
KCookieJar::saveConfig
void saveConfig(KConfig *_config)
Save the cookie configuration.
Definition: kcookiejar.cpp:1494
KHttpCookie::ports
const QList< int > & ports() const
Definition: kcookiejar.h:92
KCookieJar::setGlobalAdvice
void setGlobalAdvice(KCookieAdvice _advice)
This function sets the global advice for cookies.
Definition: kcookiejar.cpp:1126
KHttpCookieList::getAdvice
KCookieAdvice getAdvice() const
Definition: kcookiejar.h:120
KCookieJar::loadConfig
void loadConfig(KConfig *_config, bool reparse=false)
Load the cookie configuration.
Definition: kcookiejar.cpp:1527
KCookieJar::ApplyToShownCookiesOnly
Definition: kcookiejar.h:357
KCookieJar::eatCookie
void eatCookie(KHttpCookieList::iterator cookieIterator)
Remove & delete a cookie from the jar.
Definition: kcookiejar.cpp:1161
QStringList
KCookieJar::m_cookiesChanged
bool m_cookiesChanged
Definition: kcookiejar.h:390
KCookieJar::KCookieJar
KCookieJar()
Constructs a new cookie jar.
Definition: kcookiejar.cpp:291
KHttpCookie::mProtocolVersion
int mProtocolVersion
Definition: kcookiejar.h:62
KCookieJar::cookieIsPersistent
bool cookieIsPersistent(const KHttpCookie &cookie) const
This function tells whether a single KHttpCookie object should be considered persistent.
Definition: kcookiejar.cpp:1046
KHttpCookie::mExpireDate
qint64 mExpireDate
Definition: kcookiejar.h:61
KCookieJar::m_gTLDs
QSet< QString > m_gTLDs
Definition: kcookiejar.h:387
KHttpCookieList
Definition: kcookiejar.h:113
KHttpCookie::mSecure
bool mSecure
Definition: kcookiejar.h:63
KCookieJar::preferredDefaultPolicy
KCookieDefaultPolicy preferredDefaultPolicy() const
Returns the user's choice in the cookie window.
Definition: kcookiejar.h:362
KCookieJar::saveCookies
bool saveCookies(const QString &_filename)
Store all the cookies in a safe(?) place.
Definition: kcookiejar.cpp:1267
KCookieJar::m_autoAcceptSessionCookies
bool m_autoAcceptSessionCookies
Definition: kcookiejar.h:393
KHttpCookie::windowIds
const QList< long > & windowIds() const
Definition: kcookiejar.h:91
KHttpCookieList::setAdvice
void setAdvice(KCookieAdvice _advice)
Definition: kcookiejar.h:121
QSet< QString >
KHttpCookie::hasExplicitPath
bool hasExplicitPath() const
Definition: kcookiejar.h:104
KCookieAdvice
KCookieAdvice
Definition: kcookiejar.h:40
KCookieJar::getDomainList
const QStringList & getDomainList()
Get a list of all domains known to the cookie jar.
Definition: kcookiejar.cpp:1136
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
KHttpCookie::mPath
QString mPath
Definition: kcookiejar.h:58
KCookieJar::m_cookieDomains
QHash< QString, KHttpCookieList * > m_cookieDomains
Definition: kcookiejar.h:385
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
KConfig
KHttpCookie::mUserSelectedAdvice
KCookieAdvice mUserSelectedAdvice
Definition: kcookiejar.h:69
operator<<
QDebug operator<<(QDebug, const KHttpCookie &)
Definition: kcookiejar.cpp:1562
KCookieAcceptForSession
Definition: kcookiejar.h:44
KCookieJar
Definition: kcookiejar.h:129
KCookieJar::m_preferredPolicy
KCookieDefaultPolicy m_preferredPolicy
Definition: kcookiejar.h:395
KCookieJar::~KCookieJar
~KCookieJar()
Destructs the cookie jar.
Definition: kcookiejar.cpp:308
KHttpCookie::path
QString path() const
Definition: kcookiejar.h:87
KHttpCookie::mDomain
QString mDomain
Definition: kcookiejar.h:57
KHttpCookie::windowIds
QList< long > & windowIds()
Definition: kcookiejar.h:90
KHttpCookie::mCrossDomain
bool mCrossDomain
Definition: kcookiejar.h:64
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::KCookieDefaultPolicy
KCookieDefaultPolicy
Definition: kcookiejar.h:356
KHttpCookieList::KHttpCookieList
KHttpCookieList()
Definition: kcookiejar.h:116
KHttpCookie::mHttpOnly
bool mHttpOnly
Definition: kcookiejar.h:65
KCookieJar::setPreferredDefaultPolicy
void setPreferredDefaultPolicy(KCookieDefaultPolicy value)
Sets the user's default preference cookie policy.
Definition: kcookiejar.h:370
KHttpCookie::setUserSelectedAdvice
void setUserSelectedAdvice(KCookieAdvice advice)
Definition: kcookiejar.h:108
KHttpCookie::isSecure
bool isSecure() const
Definition: kcookiejar.h:96
KCookieJar::m_rejectCrossDomainCookies
bool m_rejectCrossDomainCookies
Definition: kcookiejar.h:392
KCookieJar::getDomainAdvice
KCookieAdvice getDomainAdvice(const QString &_domain) const
This function gets the advice for all cookies originating from _domain.
Definition: kcookiejar.cpp:1063
KCookieJar::loadCookies
bool loadCookies(const QString &_filename)
Load all the cookies from file and add them to the cookie jar.
Definition: kcookiejar.cpp:1390
KHttpCookie::mName
QString mName
Definition: kcookiejar.h:59
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::eatCookiesForDomain
void eatCookiesForDomain(const QString &domain)
Remove & delete all cookies for domain.
Definition: kcookiejar.cpp:1181
KHttpCookie::isCrossDomain
bool isCrossDomain() const
Definition: kcookiejar.h:102
KCookieDunno
Definition: kcookiejar.h:42
KHttpCookie::operator<<
friend QDebug operator<<(QDebug, const KHttpCookie &)
Definition: kcookiejar.cpp:1562
KHttpCookie::getUserSelectedAdvice
KCookieAdvice getUserSelectedAdvice() const
Definition: kcookiejar.h:107
KCookieJar::m_globalAdvice
KCookieAdvice m_globalAdvice
Definition: kcookiejar.h:384
KHttpCookie::mExplicitPath
bool mExplicitPath
Definition: kcookiejar.h:66
KHttpCookie::domain
QString domain() const
Definition: kcookiejar.h:85
KHttpCookie::mValue
QString mValue
Definition: kcookiejar.h:60
KHttpCookie::mHost
QString mHost
Definition: kcookiejar.h:56
KCookieJar::eatSessionCookies
void eatSessionCookies(long windowId)
Removes all end of session cookies set by the session windId.
Definition: kcookiejar.cpp:1196
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
QList< long >
KCookieJar::changed
bool changed() const
Returns whether the cookiejar has been changed.
Definition: kcookiejar.h:149
KHttpCookie::isHttpOnly
bool isHttpOnly() const
Definition: kcookiejar.h:103
KCookieJar::adviceToStr
static QString adviceToStr(KCookieAdvice _advice)
Definition: kcookiejar.cpp:131
KCookieAsk
Definition: kcookiejar.h:46
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:50:58 by doxygen 1.8.7 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 API Reference

Skip menu "kdelibs 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
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



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