CredentialsCache.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
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.
7 */
8
9#ifndef SQUID_SRC_AUTH_CREDENTIALSCACHE_H
10#define SQUID_SRC_AUTH_CREDENTIALSCACHE_H
11
12#include "auth/User.h"
13#include "cbdata.h"
14#include "sbuf/Algorithms.h"
15
16#include <unordered_map>
17
18namespace Auth {
19
22{
24
25public:
26 explicit CredentialsCache(const char *name, const char * const eventName);
27
28 ~CredentialsCache() = default;
31
33 Auth::User::Pointer lookup(const SBuf &userKey) const;
34
36 void insert(const SBuf &userKey, Auth::User::Pointer anAuth_user);
37
39 void reset() { store_.clear(); }
40
42 size_t size() const { return store_.size(); }
43
48 static void Cleanup(void *);
49
51 void cleanup();
52
59
61 std::vector<Auth::User::Pointer> sortedUsersList() const;
62
63private:
64 void scheduleCleanup();
65
68
70 typedef std::unordered_map<SBuf, Auth::User::Pointer> StoreType;
72
73 // c-string raw pointer used as event name
74 const char * const cacheCleanupEventName;
75};
76
77} /* namespace Auth */
78
79#endif /* SQUID_SRC_AUTH_CREDENTIALSCACHE_H */
80
Cache of Auth::User credentials, keyed by Auth::User::userKey.
Auth::User::Pointer lookup(const SBuf &userKey) const
bool gcScheduled_
whether a cleanup (garbage collection) event has been scheduled
void reset()
clear cache
void cleanup()
cache garbage collection, removes timed-out entries
CredentialsCache & operator=(const CredentialsCache &)=delete
std::unordered_map< SBuf, Auth::User::Pointer > StoreType
key is User::userKey(), mapped value is User::Pointer
std::vector< Auth::User::Pointer > sortedUsersList() const
CredentialsCache(const CredentialsCache &)=delete
static void Cleanup(void *)
CredentialsCache(const char *name, const char *const eventName)
void insert(const SBuf &userKey, Auth::User::Pointer anAuth_user)
add an user to the cache with the provided key
const char *const cacheCleanupEventName
CBDATA_CLASS(CredentialsCache)
Definition: SBuf.h:94
HTTP Authentication.
Definition: Config.h:19

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors