TsgcTURNServerZdarzenia › OnSTUNRequestAuthorization

OnSTUNRequestAuthorization Zdarzenie

Wywoływane po nadejściu uwierzytelnionego żądania; należy podać hasło powiązane z przychodzącą nazwą użytkownika/dziedziną.

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 dla każdego uwierzytelnionego żądania STUN Binding Request oraz każdej metody TURN (ALLOCATE, REFRESH, CREATE-PERMISSION, CHANNEL-BIND, Send-Indication) po przeanalizowaniu atrybutu MESSAGE-INTEGRITY z przychodzącego komunikatu, lecz przed jego weryfikacją. Wartości aUsername i aRealm są dekodowane z żądania; dla długoterminowych poświadczeń TURN realm odpowiada wartości TURNOptions.Authentication.LongTermCredentials.Realm. Należy przypisać hasło powiązane z danym użytkownikiem do parametru var Password; serwer oblicza wówczas klucz HMAC i albo akceptuje żądanie, albo odpowiada komunikatem 401 Unauthorized, gdy obliczona wartość integralności nie pasuje. Pozostawienie pustego ciągu w parametrze Password oznacza odrzucenie użytkownika, co również skutkuje odpowiedzią 401. Procedura obsługi tego zdarzenia jest wywoływana w wątku nasłuchiwania, chyba że właściwość NotifyEvents wybiera inny tryb — należy zachować jej krótki czas wykonania i zapewnić bezpieczeństwo wątkowe.

Przykład

procedure TForm1.OnSTUNRequestAuthorization(Sender: TObject;
  const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string;
  var Password: string);
begin
  if (aUsername = 'user') and (aRealm = 'esegece.com') then
    Password := 'password'
  else
    Password := '';
end;

Powrót do Zdarzeń