TsgcSTUNServer › イベント › OnSTUNRequestAuthorization
バインディングリクエストに認証が必要なときに発生します。受信したユーザー名/レルムに関連付けられたパスワードを提供してください。
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
認証済みの Binding Request ごとに 1 回、受信した MESSAGE-INTEGRITY 属性が解析された後、検証される前に発生します。aUsername と aRealm はリクエストからデコードされます (短期資格情報の場合、レルムは空です)。そのユーザーに関連付けられたパスワードを Password var パラメータに割り当てます。サーバーは HMAC キーを計算し、計算された整合値が一致しない場合はリクエストを受け入れるか 401 Unauthorized を返します。Password を空の文字列のままにするとユーザーを拒否し、これも 401 レスポンスをもたらします。このハンドラーは NotifyEvents が別のモードを選択しない限り、リスナースレッドで実行されます。短く、スレッドセーフに保ってください。
procedure TForm1.OnSTUNRequestAuthorization(Sender: TObject;
const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string;
var Password: string);
begin
if SameText(aUsername, 'alice') then
Password := 'secret'
else
Password := '';
end;