Как настроить базовую аутентификацию HTTP для службы прокси-сервера WSO2 EI

я использую WSO2 Enterprise Integrator 6.5.0 (последний)

Мне нужно включить базовую аутентификацию HTTP через прокси-службу (SOAP, REST)

Я пробовал ресурс ниже - https://stackoverflow.com/questions/54769567/wso2-ei-and-wso2-developer-setup-an-esb-proxy-with-http-basic-authentication

<?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>

Но это не работает? я ожидал, что отправлю неправильные учетные данные,

Служба прокси выдает ошибку?

ниже показан способ отправки запроса:  введите описание изображения здесь


person Iderkhangai.A    schedule 04.09.2019    source источник
comment
Вы пытаетесь вызвать службу с промежуточным прокси-сервером или просто службу, которая требует базовой аутентификации? Если это с прокси, вы также должны установить его в axis2.xml. Если не включить журнал проводов, docs.wso2.com/display/EI600/Debugging+Mediation и проверьте, установлен ли заголовок.   -  person Martin Hald    schedule 05.09.2019
comment
‹TransportSender name = http class = org.apache.synapse.transport.passthru.PassThroughHttpSender› ‹имя параметра = неблокирующее заблокировано = false› true ‹/parameter› ‹! -‹ имя параметра = warnOnHTTP500 заблокировано = false ›*‹ / параметр ›-› ‹! - имя параметра = http.proxyHost locked = false› localhost ‹/parameter--› ‹! -‹ имя параметра = http.proxyPort locked = false ›3128 ‹/parameter› -› ‹! -‹ имя параметра = http.nonProxyHosts locked = false ›localhost | moon | sun ‹/parameter› -› ‹/transportSender›   -  person Martin Hald    schedule 05.09.2019
comment
@Martin Hald в axis2.xml эта строка кода конфигурации была прокомментирована? следует раскомментировать это?   -  person Iderkhangai.A    schedule 05.09.2019
comment
Если между вашим wso2 и бэкэндом есть прокси-сервер, то вы должны раскомментировать и настроить его.   -  person Martin Hald    schedule 06.09.2019


Ответы (2)


Похоже, вам нужно защитить прокси-сервис, который будет вызываться как REST, с использованием Basic Auth. Рекомендуется защищать прокси-службу с помощью политик безопасности, когда она используется как SOAP [1]. Однако, если вам нужно включить базовую аутентификацию HTTP с помощью прокси-службы, вам нужно будет написать настраиваемую реализацию для аутентификации пользователя, поскольку она не поддерживается по умолчанию из ESB. Для выполнения ваших требований можно использовать один из следующих подходов.

  1. Внедрите API , защищенный базовой аутентификацией, и вызовите прокси-службу из этого API. Реализация обработчика API может использоваться для реализации аутентификации. См. [2] для реализации обработчика API.

  2. Используйте обработчик синапса для обработки аутентификации перед вызовом прокси-службы. Обратитесь к [3] для реализации обработчика синапсов. Метод handleRequestInFlow () обработчика синапса будет вызван до прокси-службы ESB. Следовательно, мы можем иметь собственную реализацию аутентификации в handleRequestInFlow () обработчика и разрешать / ограничивать вызовы прокси.

1 - https://docs.wso2.com/display/EI650/Applying+Security+to+a+Proxy+Service

2 - https://docs.wso2.com/display/ESB481/Securing+APIs#SecuringAPIs-BasicAuthUsingaBasicAuthUsinga

3 - https://docs.wso2.com/display/EI6xx/Working+with+Synapse+Handlers

person prabushi samarakoon    schedule 05.09.2019

См. это. Я думаю, что ключ должен быть исправлен как Авторизация, а не Прокси-авторизация.

person LW1    schedule 05.09.2019
comment
Я пробовал, но как я могу проверить базовую аутентификацию? Когда я отправляю запрос с / без базовой аутентификации. это все еще работает - person Iderkhangai.A; 05.09.2019