TsgcTURNServer › 이벤트 › OnSTUNRequestAuthorization
인증된 요청이 도착할 때 발생합니다. 들어오는 Username/Realm과 관련된 비밀번호를 제공하십시오.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
인증된 모든 STUN Binding Request와 모든 TURN 메서드(ALLOCATE, REFRESH, CREATE-PERMISSION, CHANNEL-BIND, Send-Indication)에 대해 들어오는 MESSAGE-INTEGRITY 속성이 파싱된 후 검증되기 전에 발생합니다. aUsername과 aRealm은 요청에서 디코딩됩니다. TURN 장기 자격 증명의 경우 realm은 TURNOptions.Authentication.LongTermCredentials.Realm과 일치합니다. 해당 사용자와 연결된 비밀번호를 Password var 매개변수에 할당하십시오. 그러면 서버는 HMAC 키를 계산하고, 계산된 무결성 값이 일치하지 않으면 요청을 수락하거나 401 Unauthorized 응답으로 답합니다. 사용자를 거부하려면 Password를 빈 문자열로 두십시오. 그러면 401 응답도 생성됩니다. 이 핸들러는 NotifyEvents가 다른 모드를 선택하지 않는 한 리스너 스레드에서 실행됩니다. 짧고 스레드 안전하게 유지하십시오.
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;