无法将“授权”标头发送到端点-HTTP模块-Mulesoft 3.9

时间:2019-07-04 19:08:34

标签: mule basic-authentication anypoint-studio

我正在尝试从m子流中调用API Rest。该API具有基本的身份验证协议,因此我需要发送标头“ Authorization:Basic XXXXXXX”。 我遇到的问题是在Anypoint Studio上配置HTTP请求时,在“身份验证”选项卡上没有“基本身份验证”选项,只能看到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 :(得分:0)

问题解决!问题出在我的属性文件上。

用引号引起来的值和base64编码给我一个错误的字符串。

致谢