TsgcTURNServer › Ereignisse › OnSTUNRequestAuthorization
Wird ausgelöst, wenn eine authentifizierte Anfrage eintrifft; geben Sie das mit dem eingehenden Username/Realm verbundene Passwort an.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
Wird für jede authentifizierte STUN-Binding-Request und jede TURN-Methode (ALLOCATE, REFRESH, CREATE-PERMISSION, CHANNEL-BIND, Send-Indication) ausgelöst, sobald das eingehende MESSAGE-INTEGRITY-Attribut geparst, aber bevor es verifiziert wurde. aUsername und aRealm werden aus der Anfrage decodiert; bei TURN-Long-Term-Credentials entspricht der Realm TURNOptions.Authentication.LongTermCredentials.Realm. Weisen Sie das mit diesem Benutzer verknüpfte Passwort dem var-Parameter Password zu; der Server berechnet dann den HMAC-Schlüssel und akzeptiert entweder die Anfrage oder antwortet mit einer 401-Unauthorized-Antwort, wenn der berechnete Integritätswert nicht übereinstimmt. Lassen Sie Password als leere Zeichenfolge, um den Benutzer abzulehnen, was ebenfalls eine 401-Antwort liefert. Dieser Handler läuft im Listener-Thread, es sei denn, NotifyEvents wählt einen anderen Modus — halten Sie ihn kurz und threadsicher.
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;