Не удается отправить заголовок «Авторизация» конечной точке - Модуль HTTP - Mulesoft 3.9 - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь вызвать API Rest из потока в муле. Этот API имеет базовый протокол аутентификации, поэтому мне нужно отправить заголовок «Авторизация: Basic XXXXXXX». Проблема, с которой я столкнулся, заключается в том, что в Anypoint Studio, когда я настраиваю HTTP-запрос, я не получаю опцию Basic Auth на вкладке Authentication, я вижу только NTLM.

  • Я уже пытался установить заголовок вручную, но он игнорируется.
  • Уже пытались включить это:

в http: request-config, и он тоже не работает.

Это конфигурация Mule:

< http:listener-config name="Gateway" host="localhost" port="8281" basePath="/base" doc:name="HTTP Listener Configuration"/>

< http:request-config name="OFSC" host="api.etadirect.com" basePath="/rest/ofscCore/v1" doc:name="HTTP Request Configuration" port="443" protocol="HTTPS">
    < http:basic-authentication username="${ofsc.clientId}@${ofsc.instance}" password="${ofsc.clientKey}"/>
< /http:request-config>

< spring:beans>
    < spring:bean id="Bean" name="BasicAuthEncode" class="tools.BasicAuthEncode" />
< /spring:beans>

< context:property-placeholder location="env.properties"/>   

<flow name="TestFlow">
    <http:listener config-ref="Gateway" path="/test" doc:name="HTTP">
        <http:response-builder disablePropertiesAsHeaders="true"/>
        <http:error-response-builder disablePropertiesAsHeaders="true"/>
    </http:listener>
    <invoke object-ref="BasicAuthEncode" method="encodeCredentials" doc:name="LPM" methodArgumentTypes="java.lang.String" methodArguments="${ofsc.clientId}@${ofsc.instance}:${ofsc.clientKey}" name="LPM2"/>
    <set-variable variableName="credentials" value="Basic #[message.payloadAs(java.lang.String)]" doc:name="Creds"/>
    <http:request config-ref="OFSC" path="/activities/3818" method="GET" doc:name="HTTP">
        <http:request-builder>
            <http:header headerName="Content-Type" value="application/json"/>
        </http:request-builder>
        <http:success-status-code-validator values="200,400,401,404,403"/>
    </http:request>
    <logger message="#[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/>
</flow>

Я, вероятно, делаю что-то неправильно, но не могу найти ответ. Надеюсь, вы, ребята, можете помочь мне

Спасибо

1 Ответ

0 голосов
/ 05 июля 2019

Проблема решена! Проблема была в моем файле свойств.

Значение, заключенное в кавычки, и кодировка base64 давали мне неверную строку.

Привет

...