TsgcWebSocketHTTPServer › イベント › 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;