TsgcWebSocketHTTPServerÉvénements › OnBeforeCommand

OnBeforeCommand Événement

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.

Syntaxe

property OnBeforeCommand: TsgcWSOnBeforeCommand;
// TsgcWSOnBeforeCommand = procedure(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions) of object

Valeur par défaut

Remarques

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.

Exemple


procedure OnBeforeCommand(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
  AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions);
begin
  if aRequestInfo.Document = '/public' then
    aOptions := [hcoAuthorizedBasic];
end;

Retour aux événements