我正在尝试从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>
我可能在做一些绝对错误的事情,但是找不到答案。希望你们能帮助我
谢谢
答案 0 :(得分:0)
问题解决!问题出在我的属性文件上。
用引号引起来的值和base64编码给我一个错误的字符串。
致谢