TsgcTURNServer › Événements › OnSTUNRequestAuthorization
Déclenché lorsqu'une requête authentifiée arrive ; fournissez le mot de passe associé au Username/Realm entrant.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
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.
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;