+/*
+ * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
+
#ifndef _SQUID_AUTH_BASIC_USER_H
#define _SQUID_AUTH_BASIC_USER_H
+#if HAVE_AUTH_MODULE_BASIC
+
#include "auth/User.h"
#include "auth/UserRequest.h"
-class BasicAuthQueueNode;
-
namespace Auth
{
-class Config;
+class SchemeConfig;
+class QueueNode;
namespace Basic
{
/** User credentials for the Basic authentication protocol */
class User : public Auth::User
{
-public:
MEMPROXY_CLASS(Auth::Basic::User);
- User(Auth::Config *);
- ~User();
+public:
+ User(Auth::SchemeConfig *, const char *requestRealm);
+ virtual ~User();
bool authenticated() const;
- void queueRequest(AuthUserRequest::Pointer auth_user_request, RH * handler, void *data);
- void submitRequest(AuthUserRequest::Pointer auth_user_request, RH * handler, void *data);
-
bool valid() const;
/** Update the cached password for a username. */
void updateCached(User *from);
- virtual int32_t ttl() const;
+ virtual int32_t ttl() const override;
+
+ /* Auth::User API */
+ static CbcPointer<Auth::CredentialsCache> Cache();
+ virtual void addToNameCache() override;
char *passwd;
- BasicAuthQueueNode *auth_queue;
+ QueueNode *queue;
private:
- AuthUserRequest::Pointer currentRequest;
+ Auth::UserRequest::Pointer currentRequest;
};
-MEMPROXY_CLASS_INLINE(Auth::Basic::User);
-
} // namespace Basic
} // namespace Auth
+#endif /* HAVE_AUTH_MODULE_BASIC */
#endif /* _SQUID_AUTH_BASIC_USER_H */
+