TsgcWebSocketHTTPServer › Événements › OnBeforeCommand
Se déclenche avant OnCommandGet ou OnCommandOther afin que la requête puisse être examinée, autorisée ou court-circuitée avec une réponse 401.
property OnBeforeCommand: TsgcWSOnBeforeCommand;
// TsgcWSOnBeforeCommand = procedure(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions) of object
—
OnBeforeCommand s'exécute pour chaque requête HTTP avant que le serveur ne la distribue à OnCommandGet ou OnCommandOther. Inspectez ARequestInfo (Document, Params, Headers, RemoteIP...) pour décider comment la requête doit être traitée et affectez aOptions en conséquence. Incluez hcoUnauthorized pour rejeter immédiatement la requête avec une réponse 401 (utile pour protéger un endpoint sans écrire vous-même la réponse), incluez hcoAuthorizedBasic pour forcer l'authentification Basic, ou laissez l'ensemble vide pour laisser les gestionnaires de commandes normaux s'exécuter. Cet événement est l'endroit recommandé pour mélanger des endpoints publics et authentifiés sur le même serveur.
procedure OnBeforeCommand(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions);
begin
if aRequestInfo.Document = '/public' then
aOptions := [hcoAuthorizedBasic];
end;