WSO2 EI и WSO2 Developer - настройка прокси-сервера ESB с базовой аутентификацией http
Я использую WSO2 EI 6.3.0 и WSO2 Developer Studio 3.8.0.
Я работаю с проектом ESB и прокси-сервисом внутри него.
Прокси-сервис - это простой сквозной сервис; он получает запрос от веб-приложения и перенаправляет его в веб-службу Soap, получает ответ от WS и возвращает его веб-приложению.
Я понял эту конфигурацию после этого урока:
https://youtu.be/3OsuGhEMQgc
Настройка очень проста, все работало нормально, пока я не нашел веб-сервис, конечная точка которого имеет базовую аутентификацию http.
Я сделал это работает благодаря этой статье:
https://medium.com/@Jenananthan/wso2-esb-how-to-invoke-basic-auth-protected-endpoint-service-5bcdd8290cb4
Ниже следует XML, описывающий прокси-сервис:
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="ProxyWithBasicAuth" startOnLoad="true" trace="disable" transports="https" xmlns="http://ws.apache.org/ns/synapse">
<target>
<endpoint name="endpoint_urn_uuid_xxxxxxxx-yyyy-zzzz-1111-234567892345">
<address trace="disable" uri="https://here.goes.the.uri.of.the.ws.endpoint"/>
</endpoint>
<inSequence>
<property value="this_is_the_username" name="username" scope="default" type="STRING"/>
<property value="this_is_the_password" name="password" scope="default" type="STRING"/>
<property expression="fn:concat($ctx:username,':',$ctx:password)" name="credentials" scope="default" type="STRING"/>
<property expression="fn:concat('Basic ', base64Encode($ctx:credentials))" name="Authorization" scope="transport" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
</inSequence>
<outSequence>
<send/>
</outSequence>
<faultSequence/>
</target>
</proxy>
Итак, эта конфигурация (файл xml) работает, но я написал весь раздел, который включает базовую аутентификацию, без использования визуального или перетаскиваемого элемента графического интерфейса.
Мои вопросы:
1) это правильный способ настройки базовой аутентификации на прокси-сервисе?
2) есть ли элемент GUI (перетаскивание), который позволяет сделать эту настройку визуально?
Примечание: мне не нужно бороться с базовой аутентификацией между "клиентами" и ESB Proxy Service; Этот вопрос касается базовой аутентификации между ESB Proxy Service и "внешней" веб-службой.
0 ответов
То, что вы сделали, правильно. Чтобы вызвать службу, защищенную с помощью Basic Auth, мы просто должны установить заголовок Authorization для сообщения. Вы можете использовать Header Mediator[1] или Property посредника (как вы уже использовали), чтобы сделать это. Не существует специального посредника (или элемента графического интерфейса в инструменте), специально предназначенного для настройки заголовка авторизации.
Кстати, вы можете рассмотреть вопрос о сохранении паролей в безопасном хранилище [2], а не в виде простого текста в конфигурации Synapse.
[1] https://docs.wso2.com/display/EI640/Header+Mediator[2] https://docs.wso2.com/display/EI640/Working+with+Passwords+in+the+ESB+profile