Move loading of user data to authenticator modules
The authenticator modules now load the user data when the new loadusers entry point is called. This new entry point is optional. At the moment the code that was in service.c was just moved into the modules but the ground work for allowing different user loading mechanisms is done. Further improvements need to be made so that the authenticators behave more like routers and filters. This work includes the creation of a AUTHENTICATOR module object, addition of createInstance entry points for authenticators and implementing it for all authenticators.
This commit is contained in:
@ -36,6 +36,7 @@
|
||||
struct dcb;
|
||||
struct server;
|
||||
struct session;
|
||||
struct servlistener;
|
||||
|
||||
/**
|
||||
* @verbatim
|
||||
@ -44,6 +45,8 @@ struct session;
|
||||
* extract Extract the data from a buffer and place in a structure
|
||||
* connectssl Determine whether the connection can support SSL
|
||||
* authenticate Carry out the authentication
|
||||
* free Free extracted data
|
||||
* loadusers Load or update authenticator user data
|
||||
* @endverbatim
|
||||
*
|
||||
* This forms the "module object" for authenticator modules within the gateway.
|
||||
@ -56,14 +59,19 @@ typedef struct gw_authenticator
|
||||
bool (*connectssl)(struct dcb *);
|
||||
int (*authenticate)(struct dcb *);
|
||||
void (*free)(struct dcb *);
|
||||
int (*loadusers)(struct servlistener *);
|
||||
} GWAUTHENTICATOR;
|
||||
|
||||
/** Return values for the loadusers entry point */
|
||||
#define AUTH_LOADUSERS_OK 0 /**< Users loaded successfully */
|
||||
#define AUTH_LOADUSERS_ERROR 1 /**< Failed to load users */
|
||||
|
||||
/**
|
||||
* The GWAUTHENTICATOR version data. The following should be updated whenever
|
||||
* the GWAUTHENTICATOR structure is changed. See the rules defined in modinfo.h
|
||||
* that define how these numbers should change.
|
||||
*/
|
||||
#define GWAUTHENTICATOR_VERSION {1, 0, 0}
|
||||
#define GWAUTHENTICATOR_VERSION {1, 1, 0}
|
||||
|
||||
|
||||
#endif /* GW_AUTHENTICATOR_H */
|
||||
|
||||
Reference in New Issue
Block a user