From e1568a4096503e575497322657f5cdfd4110f685 Mon Sep 17 00:00:00 2001 From: Francesco Chemolli Date: Thu, 3 Sep 2015 09:41:33 +0200 Subject: [PATCH] Added username caches to all authentication mechanisms --- src/auth/basic/User.cc | 9 +++++++++ src/auth/basic/User.h | 3 +++ src/auth/digest/User.cc | 8 ++++++++ src/auth/digest/User.h | 2 ++ src/auth/ntlm/User.cc | 8 ++++++++ src/auth/ntlm/User.h | 2 ++ 6 files changed, 32 insertions(+) diff --git a/src/auth/basic/User.cc b/src/auth/basic/User.cc index d2a48fd1f3..c8189132b9 100644 --- a/src/auth/basic/User.cc +++ b/src/auth/basic/User.cc @@ -9,6 +9,7 @@ #include "squid.h" #include "auth/basic/Config.h" #include "auth/basic/User.h" +#include "auth/UserNameCache.h" #include "Debug.h" #include "SquidConfig.h" #include "SquidTime.h" @@ -79,3 +80,11 @@ Auth::Basic::User::updateCached(Auth::Basic::User *from) } } +CbcPointer +Auth::Basic::User::Cache() +{ + static Auth::UserNameCache cache("basic"); + static CbcPointer p(&cache); + return p; +} + diff --git a/src/auth/basic/User.h b/src/auth/basic/User.h index 471e040c7d..949ff11386 100644 --- a/src/auth/basic/User.h +++ b/src/auth/basic/User.h @@ -36,6 +36,9 @@ public: void updateCached(User *from); virtual int32_t ttl() const; + // userKey ->Auth::User::Pointer cache + static CbcPointer Cache(); + char *passwd; QueueNode *queue; diff --git a/src/auth/digest/User.cc b/src/auth/digest/User.cc index 46d9006b94..805aacddb2 100644 --- a/src/auth/digest/User.cc +++ b/src/auth/digest/User.cc @@ -9,6 +9,7 @@ #include "squid.h" #include "auth/digest/Config.h" #include "auth/digest/User.h" +#include "auth/UserNameCache.h" #include "Debug.h" #include "dlink.h" #include "SquidConfig.h" @@ -72,3 +73,10 @@ Auth::Digest::User::currentNonce() return nonce; } +CbcPointer +Auth::Digest::User::Cache() +{ + static Auth::UserNameCache cache("digest"); + static CbcPointer p(&cache); + return p; +} diff --git a/src/auth/digest/User.h b/src/auth/digest/User.h index 3ee7e877ab..e1257f75c0 100644 --- a/src/auth/digest/User.h +++ b/src/auth/digest/User.h @@ -28,6 +28,8 @@ public: virtual int32_t ttl() const; + static CbcPointer Cache(); + HASH HA1; int HA1created; diff --git a/src/auth/ntlm/User.cc b/src/auth/ntlm/User.cc index 451de76bd5..47f1758790 100644 --- a/src/auth/ntlm/User.cc +++ b/src/auth/ntlm/User.cc @@ -9,6 +9,7 @@ #include "squid.h" #include "auth/Config.h" #include "auth/ntlm/User.h" +#include "auth/UserNameCache.h" #include "Debug.h" Auth::Ntlm::User::User(Auth::Config *aConfig, const char *aRequestRealm) : @@ -27,3 +28,10 @@ Auth::Ntlm::User::ttl() const return -1; // NTLM credentials cannot be cached. } +CbcPointer +Auth::Ntlm::User::Cache() +{ + static Auth::UserNameCache cache("ntlm"); + static CbcPointer p(&cache); + return p; +} diff --git a/src/auth/ntlm/User.h b/src/auth/ntlm/User.h index 60050a2232..8ed6fbdd93 100644 --- a/src/auth/ntlm/User.h +++ b/src/auth/ntlm/User.h @@ -30,6 +30,8 @@ public: virtual int32_t ttl() const; + static CbcPointer Cache(); + dlink_list proxy_auth_list; }; -- 2.47.2