TsgcTURNServer › Zdarzenia › OnSTUNRequestAuthorization
Wywoływane po nadejściu uwierzytelnionego żądania; należy podać hasło powiązane z przychodzącą nazwą użytkownika/dziedziną.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
Wywoływane dla każdego uwierzytelnionego żądania STUN Binding Request oraz każdej metody TURN (ALLOCATE, REFRESH, CREATE-PERMISSION, CHANNEL-BIND, Send-Indication) po przeanalizowaniu atrybutu MESSAGE-INTEGRITY z przychodzącego komunikatu, lecz przed jego weryfikacją. Wartości aUsername i aRealm są dekodowane z żądania; dla długoterminowych poświadczeń TURN realm odpowiada wartości TURNOptions.Authentication.LongTermCredentials.Realm. Należy przypisać hasło powiązane z danym użytkownikiem do parametru var Password; serwer oblicza wówczas klucz HMAC i albo akceptuje żądanie, albo odpowiada komunikatem 401 Unauthorized, gdy obliczona wartość integralności nie pasuje. Pozostawienie pustego ciągu w parametrze Password oznacza odrzucenie użytkownika, co również skutkuje odpowiedzią 401. Procedura obsługi tego zdarzenia jest wywoływana w wątku nasłuchiwania, chyba że właściwość NotifyEvents wybiera inny tryb — należy zachować jej krótki czas wykonania i zapewnić bezpieczeństwo wątkowe.
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;