Указание деталей аутентификации
В зависимости от типа аутентификации, поддерживаемого сервером REST, вы можете использовать один из следующих методов класса RequestBuilder для указания учётных данных при создании запроса:
- UsingBasicAuthentication(<Credentials>)
- UsingDigestAuthentication(<Credentials>)
- UsingCredentials(<Credentials>)
- AuthCallback(<Credentials> | <widget-handle>)
Методы UsingBasicAuthentication () и UsingDigestAuthentication () обеспечивают полную упреждающую аутентификацию – учётные данные отправляются немедленно.
С использованием методов UsingCredentials () и AuthCallback () учётные данные предоставляются только после согласования с сервером.
Рассмотрим примеры аутентификации.
Этот фрагмент кода демонстрирует, как использовать метод UsingBasicAuthentication:
oCredentials = new Credentials('Tomcat Manager Application','tomcat', 'tomcat'). oRequest = RequestBuilder:Get(httpUrl) :AcceptHtml() :UsingBasicAuthentication(oCreds) :Request.
Этот фрагмент кода демонстрирует, как использовать метод UsingDigestAuthentication:
oCredentials = new Credentials('Tomcat Manager Application','tomcat', 'tomcat'). oReq = RequestBuilder:Get(httpUrl) :AcceptHtml() :UsingDigestAuthentication(oCreds) :Request.
Этот фрагмент кода демонстрирует, как использовать метод UsingCredentials:
oReq = RequestBuilder:Get(httpUrl) :AcceptHtml() :UsingCredentials(oCreds) :Request. oResp = HttpClient:Instance():Execute(oReq).
Этот фрагмент кода демонстрирует, как использовать метод AuthCallback.
oRequest = RequestBuilder:Get(httpUrl) :AcceptHtml() :AuthCallback(new AuthStatusListener) :Request.
Реализация класса AuthStatusListener:
/* The AuthStatusListener class */ class AuthStatusListener implements IAuthFilterEventHandler: method public void AuthFilter_HttpCredentialRequestHandler( input poSender as Object, input poEventArgs as AuthenticationRequestEventArgs ): poEventArgs:Credentials:UserName = 'tomcat'. poEventArgs:Credentials:Password = 'tomcat'. end method. end class.