TsgcSTUNServer › Zdarzenia › OnSTUNRequestAuthorization
Wywoływane, gdy żądanie powiązania wymaga uwierzytelnienia; należy podać hasło skojarzone z przychodzącą parą Username/Realm.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
Wywoływane raz dla każdego uwierzytelnionego żądania Binding Request, po przeanalizowaniu atrybutu MESSAGE-INTEGRITY przychodzącego żądania, ale przed jego weryfikacją. Parametry aUsername i aRealm są dekodowane z żądania (realm jest pusty dla poświadczeń krótkoterminowych). Należy przypisać hasło powiązane z danym użytkownikiem do parametru var Password; serwer obliczy klucz HMAC i zaakceptuje żądanie lub odpowie komunikatem 401 Unauthorized, gdy obliczona wartość integralności nie będzie zgodna. Pozostawienie pustego ciągu w Password powoduje odrzucenie użytkownika, co również skutkuje odpowiedzią 401. Ta procedura obsługi działa w wątku nasłuchującym, chyba że właściwość NotifyEvents określa inny tryb — powinna być krótka i bezpieczna wątkowo.
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;