在模块载入时调用,用于初始化本地缓存状态:
typedef void (*ArchiveStartupCB) (ArchiveModuleState *state);
当用户发起基于 OAuth 的握手认证时被系统调用:
typedef bool (*ValidatorValidateCB) (const ValidatorModuleState *state,
const char *token, const char *role,
ValidatorModuleResult *result);
其中结构体定义如下:
typedef struct ValidatorModuleResult
{
bool authorized;
char *authn_id;
} ValidatorModuleResult;
只有当模块将 result->authorized 置为 true 时,连接才被允许继续向下推进,并通过 result->authn_id 回传经由令牌核验得出的权威用户名。
在后台会话完成认证生命周期后被调用,用于释放内存缓存与网络套接字句柄:
typedef void (*ValidatorShutdownCB) (ValidatorModuleState *state);