TsgcSTUNServer › Eventi › OnSTUNRequestAuthorization
Sollevato quando una Binding Request richiede autenticazione; fornire la password associata allo Username/Realm ricevuto.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
Si attiva una volta per ogni richiesta Binding autenticata, dopo che l'attributo MESSAGE-INTEGRITY in arrivo è stato analizzato ma prima che venga verificato. aUsername e aRealm vengono decodificati dalla richiesta (il realm è vuoto per le credenziali a breve termine). Assegnare la password associata a quell'utente al parametro var Password; il server calcola quindi la chiave HMAC e accetta la richiesta oppure risponde con una risposta 401 Unauthorized quando il valore di integrità calcolato non corrisponde. Lasciare Password come stringa vuota per rifiutare l'utente, il che produce anch'essa una risposta 401. Questo gestore viene eseguito sul thread listener a meno che NotifyEvents non selezioni un'altra modalità — mantenerlo breve e 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;