TsgcWebSocketHTTPServer › Zdarzenia › OnBeforeCommand
Wywoływane przed OnCommandGet lub OnCommandOther, aby żądanie mogło być sprawdzone, autoryzowane lub krótko-obwodowane odpowiedzią 401.
property OnBeforeCommand: TsgcWSOnBeforeCommand;
// TsgcWSOnBeforeCommand = procedure(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions) of object
—
Zdarzenie OnBeforeCommand jest wywoływane dla każdego żądania HTTP przed jego przekazaniem przez serwer do procedur OnCommandGet lub OnCommandOther. Należy przejrzeć obiekt ARequestInfo (Document, Params, Headers, RemoteIP...), aby określić sposób obsługi żądania i odpowiednio ustawić parametr aOptions. Dołączenie opcji hcoUnauthorized powoduje natychmiastowe odrzucenie żądania odpowiedzią 401 (przydatne do blokowania punktu końcowego bez pisania własnej odpowiedzi), opcja hcoAuthorizedBasic wymusza uwierzytelnianie Basic, a pozostawienie zbioru pustego pozwala na działanie standardowych procedur obsługi poleceń. Jest to zalecane miejsce do obsługi publicznych i uwierzytelnionych punktów końcowych na tym samym serwerze.
procedure OnBeforeCommand(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions);
begin
if aRequestInfo.Document = '/public' then
aOptions := [hcoAuthorizedBasic];
end;