if (_instance == NULL)
return;
- PurgeCredentialsCache();
authenticateDigestNonceShutdown();
_instance = NULL;
Auth::Digest::Config *digestCfg = new Auth::Digest::Config;
return dynamic_cast<Auth::Config*>(digestCfg);
}
-
-void
-Auth::Digest::Scheme::PurgeCredentialsCache(void)
-{
- AuthUserHashPointer *usernamehash;
-
- debugs(29, 2, HERE << "Erasing Digest authentication credentials from username cache.");
- hash_first(proxy_auth_username_cache);
-
- while ((usernamehash = static_cast<AuthUserHashPointer *>(hash_next(proxy_auth_username_cache)) )) {
- Auth::User::Pointer auth_user = usernamehash->user();
-
- if (strcmp(auth_user->config->type(), "digest") == 0) {
- hash_remove_link(proxy_auth_username_cache, static_cast<hash_link*>(usernamehash));
- delete usernamehash;
- }
- }
-}
-
private:
static Auth::Scheme::Pointer _instance;
- /**
- * Remove all cached user credentials from circulation.
- * Intended for use during shutdown procedure.
- * After calling this all newly received credentials must be re-authenticated.
- */
- static void PurgeCredentialsCache(void);
};
} // namespace Digest