TsgcSTUNServer › Ereignisse › OnSTUNRequestAuthorization
Wird ausgelöst, wenn ein Binding Request eine Authentifizierung erfordert; geben Sie das Passwort an, das mit dem eingehenden Username/Realm verknüpft ist.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
Wird einmal pro authentifizierter Binding Request ausgelöst, nachdem das eingehende MESSAGE-INTEGRITY-Attribut geparst, aber bevor es verifiziert wurde. aUsername und aRealm werden aus der Anfrage decodiert (der Realm ist bei Kurzzeit-Anmeldedaten leer). Weisen Sie das diesem Benutzer zugeordnete Passwort dem var-Parameter Password zu; der Server berechnet dann den HMAC-Schlüssel und akzeptiert die Anfrage entweder oder antwortet mit einer 401-Unauthorized-Antwort, wenn der berechnete Integritätswert nicht übereinstimmt. Lassen Sie Password als leere Zeichenkette, um den Benutzer abzulehnen, was ebenfalls eine 401-Antwort ergibt. Dieser Handler läuft im Listener-Thread, sofern NotifyEvents keinen anderen Modus auswählt — halten Sie ihn kurz und thread-sicher.
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;