Обращение через SoapUI к веб-сервису WCF с привязкой WSHttpBinding и авторизацией оказалось не самой очевидной задачей. Вот привязка:
Прежде всего создаем SOAP-проект и скармливаем ему WSDL. Открываем созданный SOAP Request для нужного метода. Добавляем авторизацию HTTP Basic:
Там же включаем WS-A Adressing:
В свойствах запроса устанавливаем WSS-Password Type: Password Text:
А в настройках SoapUI (Tools -> Preferences -> HTTP Settings) ставим
Authenticate Preemptively: true.
Этого должно быть достаточно, чтобы обращение к веб-сервису было успешным.
Полезные советы:
1. В SoapUI любой элемент от реквеста до проекта можно склонировать.
2. Для задания логина/пароля и любых других свойств на уровне проекта достаточно создать для проекта Custom Property, к примеру PASSWORD. Обращение к свойству:
${#Project#PASSWORD}
3. Формат проекта SoapUI - обычный XML-файл. К примеру тот же самый пароль сохраняется в проекте как plain text, пригодный для редактирования через Find/Replace. Только не забудьте после сохранения файла во внешнем редакторе перезагрузить проект в SoapUI через клавишу F5.
<wsHttpBinding> <binding name="FooBinding" > <security mode="TransportWithMessageCredential"> <transport clientCredentialType="None"> </transport> <message clientCredentialType="UserName" algorithmSuite="Default" negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding>
Прежде всего создаем SOAP-проект и скармливаем ему WSDL. Открываем созданный SOAP Request для нужного метода. Добавляем авторизацию HTTP Basic:
В свойствах запроса устанавливаем WSS-Password Type: Password Text:
А в настройках SoapUI (Tools -> Preferences -> HTTP Settings) ставим
Authenticate Preemptively: true.
Этого должно быть достаточно, чтобы обращение к веб-сервису было успешным.
Полезные советы:
1. В SoapUI любой элемент от реквеста до проекта можно склонировать.
2. Для задания логина/пароля и любых других свойств на уровне проекта достаточно создать для проекта Custom Property, к примеру PASSWORD. Обращение к свойству:
${#Project#PASSWORD}
Вбиваем в поле Password вкладки Auth, и готово!
Комментариев нет:
Отправить комментарий