TsgcWebSocketHTTPServerイベント › OnBeforeCommand

OnBeforeCommand イベント

OnCommandGetまたはOnCommandOtherの前に発生するため、リクエストをスクリーニング、認可、または401レスポンスでショートサーキットできます。

構文

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を含めるか、通常のコマンドハンドラーを実行させるにはセットを空のままにします。このイベントは、同じサーバーで公開エンドポイントと認証済みエンドポイントを混在させるのに推奨される場所です。

使用例


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

イベントに戻る