Les modules de validation OAuth sont chargés dynamiquement à partir des
bibliothèques partagées listées dans oauth_validator_libraries.
Les modules sont chargés à la demande lorsqu'une tentative de connexion le requiert.
Le chemin de recherche standard des bibliothèques est utilisé pour localiser la
bibliothèque. Pour fournir les fonctions de callback du validateur et indiquer que la
bibliothèque est bien un module de validation OAuth, une fonction nommée
_PG_oauth_validator_module_init
doit être définie.
La valeur de retour de cette fonction doit être un pointeur vers une structure
de type OAuthValidatorCallbacks
, qui contient un nombre
magique ainsi que des pointeurs vers les fonctions de validation du module.
Le pointeur retourné doit avoir une durée de vie égale à celle du serveur,
ce qui est généralement obtenu en le définissant comme une variable
static const
dans la portée globale.
typedef struct OAuthValidatorCallbacks { uint32 magic; /* doit être défini à PG_OAUTH_VALIDATOR_MAGIC */ ValidatorStartupCB startup_cb; ValidatorShutdownCB shutdown_cb; ValidatorValidateCB validate_cb; } OAuthValidatorCallbacks; typedef const OAuthValidatorCallbacks *(*OAuthValidatorModuleInit) (void);
Seule la fonction callback validate_cb
est obligatoire, les autres
sont optionnelles.