TsgcWebSocketHTTPServer › Events › OnBeforeCommand
요청을 선별, 권한 부여하거나 401 응답으로 단락할 수 있도록 OnCommandGet 또는 OnCommandOther 전에 발생합니다.
property OnBeforeCommand: TsgcWSOnBeforeCommand;
// TsgcWSOnBeforeCommand = procedure(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions) of object
—
OnBeforeCommand는 서버가 OnCommandGet 또는 OnCommandOther로 디스패치하기 전에 모든 HTTP 요청에 대해 실행됩니다. ARequestInfo(Document, Params, Headers, RemoteIP 등)를 검사하여 요청을 처리하는 방법을 결정하고 그에 따라 aOptions를 할당하십시오. 401 응답으로 요청을 즉시 거부하려면 hcoUnauthorized를 포함하고(응답을 직접 작성하지 않고 엔드포인트를 게이트하는 데 유용), Basic 인증을 강제하려면 hcoAuthorizedBasic을 포함하거나, 일반 명령 핸들러가 실행되도록 set을 비워 두십시오. 이 이벤트는 동일한 서버에서 public 및 인증된 엔드포인트를 혼합하기에 권장되는 위치입니다.
procedure OnBeforeCommand(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions);
begin
if aRequestInfo.Document = '/public' then
aOptions := [hcoAuthorizedBasic];
end;