TsgcWebSocketHTTPServerEvents › OnBeforeCommand

OnBeforeCommand Event

Disparado antes de OnCommandGet ou OnCommandOther, de modo que a requisição possa ser triada, autorizada ou interrompida com uma resposta 401.

Sintaxe

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

Valor Padrão

Observações

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.

Exemplo


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

Voltar para Eventos