TsgcTURNServer › Eventi › OnSTUNRequestAuthorization
Generato quando arriva una richiesta autenticata; fornire la password associata al nome utente e al realm in ingresso.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
Generato per ogni richiesta STUN Binding autenticata e per ogni metodo TURN (ALLOCATE, REFRESH, CREATE-PERMISSION, CHANNEL-BIND, Send-Indication) una volta che l'attributo MESSAGE-INTEGRITY in entrata è stato analizzato ma prima della sua verifica. aUsername e aRealm sono decodificati dalla richiesta; per le credenziali TURN a lungo termine il realm corrisponde a TURNOptions.Authentication.LongTermCredentials.Realm. 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 anche una risposta 401. Questo gestore viene eseguito sul thread del 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 (aUsername = 'user') and (aRealm = 'esegece.com') then
Password := 'password'
else
Password := '';
end;