]> git.ipfire.org Git - thirdparty/squid.git/blame - src/auth/digest/Scheme.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / auth / digest / Scheme.h
CommitLineData
f5691f9c 1/*
bde978a6 2 * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
f5691f9c 3 *
bbc27441
AJ
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
f5691f9c 7 */
8
d6374be6
AJ
9#ifndef SQUID_AUTH_DIGEST_SCHEME_H
10#define SQUID_AUTH_DIGEST_SCHEME_H
f5691f9c 11
602d9612 12#include "auth/Scheme.h"
f5691f9c 13
c6cf8dee
AJ
14namespace Auth
15{
16namespace Digest
17{
d6374be6 18
63be0a78 19/// \ingroup AuthSchemeAPI
20/// \ingroup AuthAPI
c6cf8dee 21class Scheme : public Auth::Scheme
f5691f9c 22{
23
24public:
c6cf8dee 25 static Auth::Scheme::Pointer GetInstance();
d6374be6
AJ
26 Scheme() {};
27 virtual ~Scheme() {}
f5691f9c 28
29 /* per scheme */
30 virtual char const *type () const;
c6cf8dee 31 virtual void shutdownCleanup();
9f3d2b2e 32 virtual Auth::Config *createConfig();
5817ee13 33
f5691f9c 34 /* Not implemented */
d6374be6
AJ
35 Scheme(Scheme const &);
36 Scheme &operator=(Scheme const &);
f5691f9c 37
38private:
c6cf8dee 39 static Auth::Scheme::Pointer _instance;
56a49fda
AJ
40
41 /**
42 * Remove all cached user credentials from circulation.
43 * Intended for use during shutdown procedure.
44 * After calling this all newly received credentials must be re-authenticated.
45 */
46 static void PurgeCredentialsCache(void);
f5691f9c 47};
48
d6374be6
AJ
49} // namespace Digest
50} // namespace Auth
51
52#endif /* SQUID_AUTH_DIGEST_SCHEME_H */
f53969cc 53