TsgcSTUNServerZdarzenia › OnSTUNRequestAuthorization

OnSTUNRequestAuthorization Zdarzenie

Wywoływane, gdy żądanie powiązania wymaga uwierzytelnienia; należy podać hasło skojarzone z przychodzącą parą Username/Realm.

Składnia

property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object

Wartość domyślna

Uwagi

Wywoływane raz dla każdego uwierzytelnionego żądania Binding Request, po przeanalizowaniu atrybutu MESSAGE-INTEGRITY przychodzącego żądania, ale przed jego weryfikacją. Parametry aUsername i aRealm są dekodowane z żądania (realm jest pusty dla poświadczeń krótkoterminowych). Należy przypisać hasło powiązane z danym użytkownikiem do parametru var Password; serwer obliczy klucz HMAC i zaakceptuje żądanie lub odpowie komunikatem 401 Unauthorized, gdy obliczona wartość integralności nie będzie zgodna. Pozostawienie pustego ciągu w Password powoduje odrzucenie użytkownika, co również skutkuje odpowiedzią 401. Ta procedura obsługi działa w wątku nasłuchującym, chyba że właściwość NotifyEvents określa inny tryb — powinna być krótka i bezpieczna wątkowo.

Przykład

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;

Powrót do Zdarzeń