Barracuda Application Server C/C++ Reference
NO
AuthenticatedUser.h
1/*
2 * ____ _________ __ _
3 * / __ \___ ____ _/ /_ __(_)___ ___ ___ / / ____ ____ _(_)____
4 * / /_/ / _ \/ __ `/ / / / / / __ `__ \/ _ \/ / / __ \/ __ `/ / ___/
5 * / _, _/ __/ /_/ / / / / / / / / / / / __/ /___/ /_/ / /_/ / / /__
6 * /_/ |_|\___/\__,_/_/ /_/ /_/_/ /_/ /_/\___/_____/\____/\__, /_/\___/
7 * /____/
8 *
9 * Barracuda Embedded Web-Server
10 *
11 ****************************************************************************
12 * HEADER
13 *
14 * $Id: AuthenticatedUser.h 5813 2026-06-15 10:15:50Z wini $
15 *
16 * COPYRIGHT: Real Time Logic LLC, 2006 - 2023
17 *
18 * This software is copyrighted by and is the sole property of Real
19 * Time Logic LLC. All rights, title, ownership, or other interests in
20 * the software remain the property of Real Time Logic LLC. This
21 * software may only be used in accordance with the terms and
22 * conditions stipulated in the corresponding license agreement under
23 * which the software has been supplied. Any unauthorized use,
24 * duplication, transmission, distribution, or disclosure of this
25 * software is expressly forbidden.
26 *
27 * This Copyright notice may not be removed or modified without prior
28 * written consent of Real Time Logic LLC.
29 *
30 * Real Time Logic LLC. reserves the right to modify this software
31 * without notice.
32 *
33 * http://www.realtimelogic.com
34 ****************************************************************************
35 *
36 *
37 */
38#ifndef __AuthenticatedUser_h
39#define __AuthenticatedUser_h
40
41#include <HttpServer.h>
42#include <BaServerLib.h>
43#include <DoubleList.h>
44#include <SplayTree.h>
45
46#ifndef __DOXYGEN__
48struct UserIntf;
49struct AuthorizerIntf;
51struct LoginRespIntf;
52struct LoginTracker;
53struct LoginTrackerIntf;
54struct LoginTrackerNode;
55struct AuthInfo;
56#endif
57
58
59#ifdef __cplusplus
60extern "C" {
61#endif
62extern const char BasicAuthUser_derivedType[];
63extern const char DigestAuthUser_derivedType[];
64extern const char FormAuthUser_derivedType[];
65#ifdef __cplusplus
66}
67#endif
68
69
82typedef enum {
83 AuthenticatedUserType_Unknown,
84 AuthenticatedUserType_Digest,
85 AuthenticatedUserType_Basic,
86 AuthenticatedUserType_Form
88
89
102typedef BaBool (*AuthorizerIntf_Authorize)(
103 struct AuthorizerIntf* intf,
104 struct AuthenticatedUser* user,
105 HttpMethod httpMethod,
106 const char* path);
107
111typedef struct AuthorizerIntf
112{
113#ifdef __cplusplus
115
120
127 bool authorize(struct AuthenticatedUser* user,
128 HttpMethod method,
129 const char* path);
130#endif
131 AuthorizerIntf_Authorize authorizeFP;
133
134#define AuthorizerIntf_constructor(o, authorize) (o)->authorizeFP=authorize
135#define AuthorizerIntf_authorize(o, user, method, path) \
136 (o)->authorizeFP(o, user, method, path)
137
138#ifdef __cplusplus
139inline
140AuthorizerIntf::AuthorizerIntf(AuthorizerIntf_Authorize authorize) {
141 AuthorizerIntf_constructor(this,authorize); }
142inline bool
144 HttpMethod method,
145 const char* path) {
146 return AuthorizerIntf_authorize(this,user,method,path) ? true : false; }
147#endif
148
149
170typedef void (*UserIntf_GetPwd)(struct UserIntf* intf,struct AuthInfo* info);
171
176typedef struct UserIntf
177{
178#ifdef __cplusplus
179
180 UserIntf() {}
181
186
187#endif
188 UserIntf_GetPwd getPwdFp;
190
191#ifdef __cplusplus
192extern "C" {
193#endif
194
195#define UserIntf_constructor(o, getPwd) (o)->getPwdFp = getPwd
196
197#define UserIntf_getPwd(o, username) (o)->getPwdFp(o, username)
198#ifdef __cplusplus
199}
200inline UserIntf::UserIntf(
201 UserIntf_GetPwd getPwd) {
202 UserIntf_constructor(this, getPwd);
203}
204#endif
205
206
207#ifndef __DOXYGEN__
208typedef struct AuthUserList
209{
210#ifdef __cplusplus
211#endif
212 SplayTreeNode super; /* inherits from SplayTreeNode */
213 DoubleList list; /* List of AuthenticatedUser objects */
214 struct UserIntf* userDb;
215 HttpServer* server;
216 char* username;
217 char* password;
218 int listLen; /* Number of objects in 'list' */
219} AuthUserList;
220#endif
221
222BA_API int AuthUserList_createOrCheck(struct AuthInfo* info,
223 UserIntf* userDb,
224 void** ptr,
225 size_t size);
226
227
228typedef DoubleListEnumerator AuthUserListEnumerator;
229#define AuthUserListEnumerator_constructor(e, o) \
230 DoubleListEnumerator_constructor(e, &(o)->list)
231BA_API struct AuthenticatedUser*
232AuthUserListEnumerator_getElement(DoubleListEnumerator* o);
233BA_API struct AuthenticatedUser*
234AuthUserListEnumerator_nextElement(DoubleListEnumerator* o);
235void AuthUserList_termIfEmpty(AuthUserList* o);
236
237
238
245typedef struct AuthenticatedUser
246{
247#ifdef __cplusplus
248
260 static AuthenticatedUser* get(HttpRequest* request);
261
262
275 static AuthenticatedUser* get(HttpSession* session);
276
282
285 const char* getPassword();
286
289 const char* getName();
290
318 void logout(bool all=false);
319
325
329#endif
330 HttpSessionAttribute superClass; /*as if inherited */
331 DoubleLink dlink; /* In AuthUserList */
332 AuthUserList* authUserList;
333 const char* derivedType; /* Used for dynamic cast */
335
336#ifdef __cplusplus
337extern "C" {
338#endif
339
340BA_API void
341AuthenticatedUser_constructor(AuthenticatedUser* o,
342 const char* derivedType,
343 AuthUserList* list,
345BA_API void AuthenticatedUser_destructor(AuthenticatedUser* o);
346BA_API AuthenticatedUser* AuthenticatedUser_get1(HttpRequest* request);
347BA_API AuthenticatedUser* AuthenticatedUser_get2(HttpSession* session);
348#define AuthenticatedUser_getName(o) \
349 ((o) && (o)->authUserList && (o)->authUserList->username ? \
350 (o)->authUserList->username : 0)
351#define AuthenticatedUser_getDerivedType(o) (o)->derivedType
352#define AuthenticatedUser_getSession(o) \
353 HttpSessionAttribute_getSession((HttpSessionAttribute*)o)
354#define AuthenticatedUser_getPassword(o) \
355 ((o) && (o)->authUserList && (o)->authUserList->password ? \
356 (o)->authUserList->password : 0)
357BA_API void AuthenticatedUser_logout(AuthenticatedUser* o, BaBool all);
358BA_API AuthenticatedUserType AuthenticatedUser_getType(AuthenticatedUser* o);
359BA_API AuthenticatedUser* AuthenticatedUser_getAnonymous(void);
360#ifdef __cplusplus
361}
363 return AuthenticatedUser_get1(request); }
365 return AuthenticatedUser_get2(session); }
366inline const char* AuthenticatedUser::getName() {
367 return AuthenticatedUser_getName(this); }
369 return AuthenticatedUser_getSession(this); }
370inline const char* AuthenticatedUser::getPassword() {
371 return AuthenticatedUser_getPassword(this); }
372inline void AuthenticatedUser::logout(bool all) {
373 AuthenticatedUser_logout(this, all ? TRUE : FALSE); }
375 return AuthenticatedUser_getType(this); }
377 return AuthenticatedUser_getAnonymous(); }
378#endif
379
388typedef AuthenticatedUser* (*AuthenticatorIntf_Authenticate)(
389 struct AuthenticatorIntf* super,
390 const char* relPath,
391 HttpCommand* cmd);
392
393
397typedef struct AuthenticatorIntf
398{
399#ifdef __cplusplus
400 /*Only to be used as default constructor when sub-classing with C code*/
402
407
412 AuthenticatedUser* authenticate(const char* relPath, HttpCommand* cmd);
413#endif
414 AuthenticatorIntf_Authenticate authenticateCB;
416
417#ifdef __cplusplus
418extern "C" {
419#endif
420
421#define AuthenticatorIntf_authenticate(o, relPath, cmd) \
422 (o)->authenticateCB(o, relPath, cmd)
423
424BA_API void AuthenticatorIntf_constructor(
426 AuthenticatorIntf_Authenticate authenticate);
427#ifdef __cplusplus
428}
429inline AuthenticatorIntf::AuthenticatorIntf(
430 AuthenticatorIntf_Authenticate authenticate) {
431 AuthenticatorIntf_constructor(this,authenticate);
432}
434 const char* relPath, HttpCommand* cmd) {
435 return AuthenticatorIntf_authenticate(this, relPath, cmd);
436}
437#endif
438
439
451typedef void (*LoginRespIntf_Service)(struct LoginRespIntf* intf,
452 struct AuthInfo* info);
453
462typedef struct LoginRespIntf
463{
464#ifdef __cplusplus
465 LoginRespIntf() {}
470#endif
471 LoginRespIntf_Service serviceFp;
473
474#define LoginRespIntf_constructor(o, service) (o)->serviceFp=service
475#ifdef __cplusplus
476inline LoginRespIntf::LoginRespIntf(LoginRespIntf_Service service) {
477 LoginRespIntf_constructor(this, service); }
478#endif
479
480
484typedef enum {
495
501
502
507typedef struct AuthInfo
508{
511
514
516 const char* username;
517
519 const char* upwd;
520
524
532
540
544 void* userObj;
545
546 AuthUserList* authUserList;
547
557
558 U32 seed;
559 U32 seedKey;
560
566
571
575 BaBool denied;
576
583 BaBool recycle;
584
595 U8 password[100];
597
598#define AuthInfo_constructor(o, trackerMA, cmdMA, typeMA) do {\
599 memset(o, 0, sizeof(AuthInfo));\
600 (o)->tracker=trackerMA;\
601 (o)->cmd=cmdMA;\
602 (o)->type=typeMA;\
603 (o)->maxUsers=3;\
604 (o)->ct=AuthInfoCT_Password;\
605 (o)->password[0]=0;\
606} while(0)
607
617 struct LoginTrackerIntf* o,
618 AuthInfo* info,
619 struct LoginTrackerNode* node);
620
621
631 struct LoginTrackerIntf* o,
632 AuthInfo* info,
633 struct LoginTrackerNode* node);
634
648 struct LoginTrackerIntf* o,
649 AuthInfo* info,
650 struct LoginTrackerNode* node);
651
659 struct LoginTrackerIntf* o,
660 struct LoginTrackerNode* node);
661
662
667typedef struct LoginTrackerIntf
668{
669#ifdef __cplusplus
679 LoginTrackerIntf_TerminateNode terminateNode);
680#endif
684 LoginTrackerIntf_TerminateNode terminateNode;
686
687#define LoginTrackerIntf_constructor(\
688 o, validateMA, loginMA, loginFailedMA, terminateNodeMA) do {\
689 (o)->validate=validateMA;\
690 (o)->login=loginMA;\
691 (o)->loginFailed=loginFailedMA;\
692 (o)->terminateNode=terminateNodeMA;\
693} while(0)
694#define LoginTrackerIntf_validate(o, request, node) \
695 (o)->validate(o, request, node)
696#define LoginTrackerIntf_login(o, request, user) \
697 (o)->login(o, request, user)
698#define LoginTrackerIntf_loginFailed(o, node, loginName) \
699 (o)->loginFailed(o, node, loginName)
700#define LoginTrackerIntf_terminateNode(o, node) \
701 (o)->terminateNode(o, node)
702
703#ifdef __cplusplus
708 LoginTrackerIntf_TerminateNode terminateNode) {
709 LoginTrackerIntf_constructor(this,validate,login,loginFailed,terminateNode);
710}
711#endif
712
713
718typedef struct LoginTrackerNode
719{
720#ifdef __cplusplus
723 U32 getCounter();
724
727 U32 getAuxCounter();
728
731 void setAuxCounter(U32 count);
732
735 HttpSockaddr* getAddr();
736
739 void setUserData(void* data);
740
743 void* getUserData();
744
747 BaTime getTime();
748#endif
749 SplayTreeNode super;
750 DoubleLink dlink;
751 HttpSockaddr addr;
752 void* userData;
753 BaTime t;
754 U32 loginCounter;
755 U32 auxCounter;
757
758#define LoginTrackerNode_getCounter(o) (o)->loginCounter
759#define LoginTrackerNode_getAuxCounter(o) (o)->auxCounter
760#define LoginTrackerNode_setAuxCounter(o, count) (o)->auxCounter=count
761#define LoginTrackerNode_getAddr(o) (&(o)->addr)
762#define LoginTrackerNode_setUserData(o, data) (o)->userData=data
763#define LoginTrackerNode_getUserData(o) (o)->userData
764#define LoginTrackerNode_getTime(o) (o)->t
765
766#ifdef __cplusplus
768 return LoginTrackerNode_getCounter(this);
769}
771 return LoginTrackerNode_getAuxCounter(this);
772}
773
774inline void LoginTrackerNode::setAuxCounter(U32 count) {
775 LoginTrackerNode_setAuxCounter(this, count);
776}
777
778inline HttpSockaddr* LoginTrackerNode::getAddr() {
779 return LoginTrackerNode_getAddr(this);
780}
781inline void LoginTrackerNode::setUserData(void* data) {
782 LoginTrackerNode_setUserData(this, data);
783}
785 return LoginTrackerNode_getUserData(this);
786}
788 return LoginTrackerNode_getTime(this);
789}
790#endif
791
808typedef struct LoginTracker
809{
810#ifdef __cplusplus
817 LoginTracker(U32 noOfLoginTrackerNodes,
818 LoginTrackerIntf* intf,
820
823 void clearCache();
824
828
833
841#endif
842 SplayTree tree;
843 DoubleList dInUseList;
844 DoubleList dFreeList;
845 LoginTrackerIntf* loginTrackerIntf;
846 U32 cursor;
847 U32 noOfLoginTrackerNodes;
848 LoginTrackerNode* nodes;
850
851
852#ifdef __cplusplus
853extern "C" {
854#endif
855BA_API void LoginTracker_constructor(LoginTracker* o,
856 U32 noOfLoginTrackerNodes,
857 LoginTrackerIntf* intf,
858 AllocatorIntf* allocator);
859BA_API void LoginTracker_destructor(LoginTracker* o);
860BA_API void LoginTracker_clearCache(LoginTracker* o);
861BA_API LoginTrackerNode* LoginTracker_getFirstNode(LoginTracker* o);
862BA_API LoginTrackerNode* LoginTracker_getNextNode(
864BA_API LoginTrackerNode* LoginTracker_find(LoginTracker*o, HttpRequest* req);
865BA_API void LoginTracker_loginFailed(
866 LoginTracker* o, AuthInfo* info);
867BA_API BaBool LoginTracker_validate(LoginTracker* o, AuthInfo* info);
868BA_API void LoginTracker_login(LoginTracker* o, AuthInfo* info);
869#ifdef __cplusplus
870}
871inline LoginTracker::LoginTracker(U32 noOfLoginTrackerNodes,
872 LoginTrackerIntf* intf,
873 AllocatorIntf* allocator) {
874 LoginTracker_constructor(this, noOfLoginTrackerNodes, intf, allocator);
875}
877 LoginTracker_clearCache(this);
878}
880 return LoginTracker_getFirstNode(this);
881}
883 return LoginTracker_getNextNode(this,n);
884}
886 return LoginTracker_find(this,request);
887}
888#endif
889
890 /* end of Authentication */
892
893/* Internal func */
894void calculateHA1Hex(
895 const char* realm, const char* uname, const char* pwd, U8 hexbuf[33]);
896
897#endif
struct UserIntf UserIntf
User database interface used by the authentication classes.
AuthInfoCT
AuthInfo Credential Type can optionally be used by the UserIntf_GetPwd callback function.
Definition: AuthenticatedUser.h:484
LoginTrackerNode * find(HttpRequest *request)
Find LoginTrackerNode in cache by using the IP address from the request object.
Definition: AuthenticatedUser.h:885
HttpSession * getSession()
Get the session object associated with this authenticated user.
Definition: AuthenticatedUser.h:368
static AuthenticatedUser * getAnonymous()
Returns the shared anonymous user object used internally.
Definition: AuthenticatedUser.h:376
bool authorize(struct AuthenticatedUser *user, HttpMethod method, const char *path)
Returns TRUE if user is authorized.
Definition: AuthenticatedUser.h:143
const char * getPassword()
Returns the user's password or password hash as provided by the authenticator.
Definition: AuthenticatedUser.h:370
AuthenticatedUser *(* AuthenticatorIntf_Authenticate)(struct AuthenticatorIntf *super, const char *relPath, HttpCommand *cmd)
The authenticator callback method for the abstract class AuthenticatorIntf.
Definition: AuthenticatedUser.h:388
U32 getCounter()
Returns the number of login attempts.
Definition: AuthenticatedUser.h:767
LoginTrackerIntf(LoginTrackerIntf_Validate validate, LoginTrackerIntf_Login login, LoginTrackerIntf_LoginFailed loginFailed, LoginTrackerIntf_TerminateNode terminateNode)
Create a LoginTrackerIntf.
Definition: AuthenticatedUser.h:704
void(* LoginTrackerIntf_Login)(struct LoginTrackerIntf *o, AuthInfo *info, struct LoginTrackerNode *node)
Prototype for the Login tracker method.
Definition: AuthenticatedUser.h:630
BaTime getTime()
Returns the time for the latest login attempt.
Definition: AuthenticatedUser.h:787
struct AuthorizerIntf AuthorizerIntf
An abstract class, which you must implement, provides a method of authorizing an authenticated user.
LoginTrackerNode * getNextNode(LoginTrackerNode *n)
Return the next LoginTrackerNode in the cache or NULL if no more nodes.
Definition: AuthenticatedUser.h:882
void * getUserData()
Fetch stored application data in this node.
Definition: AuthenticatedUser.h:784
AuthenticatedUserType getType()
Returns the authenticator type that was used to authenticate this user.
Definition: AuthenticatedUser.h:374
struct AuthenticatorIntf AuthenticatorIntf
Abstract interface class implemented by DigestAuthenticator, FormAuthenticator and DigestAuthenticato...
BaBool(* LoginTrackerIntf_Validate)(struct LoginTrackerIntf *o, AuthInfo *info, struct LoginTrackerNode *node)
Prototype for the validate callback method.
Definition: AuthenticatedUser.h:616
AuthenticatedUser * authenticate(const char *relPath, HttpCommand *cmd)
Authenticate the user.
Definition: AuthenticatedUser.h:433
struct LoginTrackerNode LoginTrackerNode
A LoginTrackerNode keeps track of how many times a user using a specific IP address has attempted to ...
const char * getName()
Returns the authenticated user's name.
Definition: AuthenticatedUser.h:366
LoginTrackerNode * getFirstNode()
Return first LoginTrackerNode in the cache or NULL if cache empty.
Definition: AuthenticatedUser.h:879
AuthenticatedUserType
The authenticator types.
Definition: AuthenticatedUser.h:82
struct LoginRespIntf LoginRespIntf
The LoginRespIntf is an abstract class, which must be implemented when using one of DigestAuthenticat...
void logout(bool all=false)
Logout user and terminate the session object.
Definition: AuthenticatedUser.h:372
struct LoginTrackerIntf LoginTrackerIntf
The interface between the LoginTracker and the application code.
void(* LoginRespIntf_Service)(struct LoginRespIntf *intf, struct AuthInfo *info)
This callback function is called if the user failed to authenticate with one of DigestAuthenticator,...
Definition: AuthenticatedUser.h:451
void(* UserIntf_GetPwd)(struct UserIntf *intf, struct AuthInfo *info)
User database callback used by authenticators.
Definition: AuthenticatedUser.h:170
static AuthenticatedUser * get(HttpRequest *request)
Returns a pointer to an instance of class AuthenticatedUser if a session object exists and if the use...
Definition: AuthenticatedUser.h:362
void setUserData(void *data)
Store application data in this node.
Definition: AuthenticatedUser.h:781
void clearCache()
Clear the LoginTrackerNode cache.
Definition: AuthenticatedUser.h:876
struct LoginTracker LoginTracker
The LoginTracker class is an optional security enhancement that can be installed in an instance of on...
void(* LoginTrackerIntf_LoginFailed)(struct LoginTrackerIntf *o, AuthInfo *info, struct LoginTrackerNode *node)
Prototype for the LoginFailed callback method.
Definition: AuthenticatedUser.h:647
U32 getAuxCounter()
Get auxiliary counter.
Definition: AuthenticatedUser.h:770
struct AuthInfo AuthInfo
An instance of the AuthInfo struct is created on the stack in the Barracuda authenticators and is use...
HttpSockaddr * getAddr()
Return the HttpSockaddr.
Definition: AuthenticatedUser.h:778
BaBool(* AuthorizerIntf_Authorize)(struct AuthorizerIntf *intf, struct AuthenticatedUser *user, HttpMethod httpMethod, const char *path)
Prototype for the Authorize callback method.
Definition: AuthenticatedUser.h:102
struct AuthenticatedUser AuthenticatedUser
Abstract base class implemented by BasicAuthUser, FormAuthUser and DigestAuthUser.
void(* LoginTrackerIntf_TerminateNode)(struct LoginTrackerIntf *o, struct LoginTrackerNode *node)
Prototype for the TerminateNode callback method.
Definition: AuthenticatedUser.h:658
void setAuxCounter(U32 count)
Set auxiliary counter.
Definition: AuthenticatedUser.h:774
LoginTracker(U32 noOfLoginTrackerNodes, LoginTrackerIntf *intf, AllocatorIntf *allocator=AllocatorIntf::getDefault())
Create a LoginTracker instance.
Definition: AuthenticatedUser.h:871
@ AuthInfoCT_Invalid
Set when getpwd callback failed comparing AuthInfo::upwd with stored password.
Definition: AuthenticatedUser.h:499
@ AuthInfoCT_Valid
Set when getpwd callback successfully compared AuthInfo::upwd with stored password.
Definition: AuthenticatedUser.h:494
@ AuthInfoCT_HA1
The password is returned as a HA1 hash, which is: MD5(username ":" realm ":" password)
Definition: AuthenticatedUser.h:490
@ AuthInfoCT_Password
The default.
Definition: AuthenticatedUser.h:486
void(* HttpSessionAttribute_Destructor)(struct HttpSessionAttribute *o)
HttpSessionAttribute termination callback function.
Definition: HttpServer.h:1887
HttpMethod
HTTP method types.
Definition: HttpServer.h:780
S64 BaTime
An arithmetic type representing calendar time with epoch of 1970-01-01 00:00:10 GMT – i....
Definition: GenPrimT.h:93
Memory allocation and deallocation Interface class.
Definition: AllocatorIntf.h:83
static AllocatorIntf * getDefault(void)
Returns a pointer to a predefined AllocatorIntf class.
Definition: AllocatorIntf.h:156
An instance of the AuthInfo struct is created on the stack in the Barracuda authenticators and is use...
Definition: AuthenticatedUser.h:508
const char * username
The user name if the client sends login information.
Definition: AuthenticatedUser.h:516
const char * upwd
The password provided by the user, if any.
Definition: AuthenticatedUser.h:519
AuthInfoCT ct
The ct parameter can optionally be set by the UserIntf_GetPwd function.
Definition: AuthenticatedUser.h:539
BaBool recycle
Force another client to log out.
Definition: AuthenticatedUser.h:583
int maxUsers
Max number of concurrent logins for this user.
Definition: AuthenticatedUser.h:565
struct LoginTracker * tracker
The tracker object if any.
Definition: AuthenticatedUser.h:510
U8 password[100]
Must be set by UserIntf_GetPwd if the user is found.
Definition: AuthenticatedUser.h:595
BaTime maxInactiveInterval
This variable specifies the time, in seconds, between client requests before the user is automaticall...
Definition: AuthenticatedUser.h:556
HttpCommand * cmd
The request/response container object.
Definition: AuthenticatedUser.h:513
AuthenticatedUser * user
The authenticated user object if the user is authenticated.
Definition: AuthenticatedUser.h:523
int loginAttempts
Shows the number of login attempts if the LoginTracker is active.
Definition: AuthenticatedUser.h:570
BaBool denied
Flag set if the user is denied access by the LoginTracker.
Definition: AuthenticatedUser.h:575
void * userObj
An object that can be set by the callbacks for exchanging information.
Definition: AuthenticatedUser.h:544
AuthenticatedUserType type
The AuthenticatedUser type.
Definition: AuthenticatedUser.h:531
Abstract base class implemented by BasicAuthUser, FormAuthUser and DigestAuthUser.
Definition: AuthenticatedUser.h:246
Abstract interface class implemented by DigestAuthenticator, FormAuthenticator and DigestAuthenticato...
Definition: AuthenticatedUser.h:398
An abstract class, which you must implement, provides a method of authorizing an authenticated user.
Definition: AuthenticatedUser.h:112
The HttpCommand class is a container class for the HttpRequest and HttpResponse command pair.
Definition: HttpServer.h:1824
The HttpServer creates an HttpRequest object when the HttpServer parses a client request.
Definition: HttpServer.h:816
The Web Server.
Definition: HttpServer.h:2867
The interface to an HttpSession attribute.
Definition: HttpServer.h:1918
Provides a way to identify a user across more than one page request or visit to a web site,...
Definition: HttpServer.h:1965
The LoginRespIntf is an abstract class, which must be implemented when using one of DigestAuthenticat...
Definition: AuthenticatedUser.h:463
The interface between the LoginTracker and the application code.
Definition: AuthenticatedUser.h:668
A LoginTrackerNode keeps track of how many times a user using a specific IP address has attempted to ...
Definition: AuthenticatedUser.h:719
The LoginTracker class is an optional security enhancement that can be installed in an instance of on...
Definition: AuthenticatedUser.h:809
User database interface used by the authentication classes.
Definition: AuthenticatedUser.h:177