TsgcWebSocketHTTPServer › Ereignisse › OnBeforeCommand
Wird vor OnCommandGet oder OnCommandOther ausgelöst, sodass die Anfrage geprüft, autorisiert oder kurzschlüssig mit einer 401-Antwort beantwortet werden kann.
property OnBeforeCommand: TsgcWSOnBeforeCommand;
// TsgcWSOnBeforeCommand = procedure(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions) of object
—
OnBeforeCommand läuft für jeden HTTP-Request, bevor der Server ihn an OnCommandGet oder OnCommandOther weiterleitet. Untersuchen Sie ARequestInfo (Document, Params, Headers, RemoteIP...), um zu entscheiden, wie der Request behandelt werden muss, und weisen Sie aOptions entsprechend zu. Fügen Sie hcoUnauthorized hinzu, um den Request sofort mit einer 401-Response abzulehnen (nützlich, um einen Endpunkt abzusichern, ohne selbst eine Response zu schreiben), fügen Sie hcoAuthorizedBasic hinzu, um Basic-Authentifizierung zu erzwingen, oder lassen Sie die Menge leer, um die normalen Command-Handler ausführen zu lassen. Das Ereignis ist der empfohlene Ort, um öffentliche und authentifizierte Endpunkte auf demselben Server zu mischen.
procedure OnBeforeCommand(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions);
begin
if aRequestInfo.Document = '/public' then
aOptions := [hcoAuthorizedBasic];
end;