TsgcSTUNServer › Événements › OnSTUNRequestAuthorization
Levé lorsqu'une requête Binding nécessite une authentification ; fournissez le mot de passe associé au nom d'utilisateur/domaine entrant.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
Déclenché une fois par requête de liaison (Binding Request) authentifiée, après l'analyse de l'attribut MESSAGE-INTEGRITY entrant mais avant sa vérification. aUsername et aRealm sont décodés depuis la requête (le realm est vide pour les credentials à court terme). Assignez le mot de passe associé à cet utilisateur au paramètre var Password ; le serveur calcule alors la clé HMAC et soit accepte la requête, soit répond avec une réponse 401 Unauthorized lorsque la valeur d'intégrité calculée ne correspond pas. Laissez Password comme une chaîne vide pour rejeter l'utilisateur, ce qui produit é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 thread-safe.
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;