TsgcWebSocketHTTPServer › Events › OnBeforeCommand
Disparado antes de OnCommandGet ou OnCommandOther, de modo que a requisição possa ser triada, autorizada ou interrompida com uma resposta 401.
property OnBeforeCommand: TsgcWSOnBeforeCommand;
// TsgcWSOnBeforeCommand = procedure(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions) of object
—
O OnBeforeCommand é executado para cada requisição HTTP antes de o servidor despachá-la para OnCommandGet ou OnCommandOther. Inspecione ARequestInfo (Document, Params, Headers, RemoteIP...) para decidir como a requisição deve ser tratada e atribua aOptions de acordo. Inclua hcoUnauthorized para rejeitar a requisição imediatamente com uma resposta 401 (útil para proteger um endpoint sem escrever nenhuma resposta você mesmo), inclua hcoAuthorizedBasic para forçar autenticação Basic ou deixe o conjunto vazio para permitir que os handlers de comando normais sejam executados. O evento é o local recomendado para misturar endpoints públicos e autenticados no mesmo servidor.
procedure OnBeforeCommand(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions);
begin
if aRequestInfo.Document = '/public' then
aOptions := [hcoAuthorizedBasic];
end;