TsgcTURNServerÉvénements › OnSTUNRequestAuthorization

OnSTUNRequestAuthorization Événement

Déclenché lorsqu'une requête authentifiée arrive ; fournissez le mot de passe associé au Username/Realm entrant.

Syntaxe

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

Valeur par défaut

Remarques

Déclenché pour chaque requête de liaison STUN authentifiée et chaque méthode TURN (ALLOCATE, REFRESH, CREATE-PERMISSION, CHANNEL-BIND, Send-Indication) une fois que l'attribut MESSAGE-INTEGRITY entrant a été analysé mais avant d'être vérifié. aUsername et aRealm sont décodés depuis la requête ; pour les informations d'identification TURN à long terme, le realm correspond à TURNOptions.Authentication.LongTermCredentials.Realm. Assignez le mot de passe associé à cet utilisateur au paramètre var Password ; le serveur calcule ensuite la clé HMAC et accepte soit la requête, soit répond avec une réponse 401 Non autorisé lorsque la valeur d'intégrité calculée ne correspond pas. Laissez Password comme chaîne vide pour rejeter l'utilisateur, ce qui génère également une réponse 401. Ce gestionnaire s'exécute sur le thread d'écoute sauf si NotifyEvents sélectionne un autre mode — gardez-le court et sûr pour les threads.

Exemple

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;

Retour aux événements