Указание деталей аутентификации
В зависимости от типа аутентификации, поддерживаемого сервером 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.
