【问题标题】:How to pass Bearer Token in web service consumer component in mule 4?如何在 mule 4 的 Web 服务使用者组件中传递 Bearer Token?
【发布时间】:2020-06-08 18:46:00
【问题描述】:

我需要将 Bearer Token 以以下格式传递给下游系统(使用 web 服务消费者组件连接)。

Bearer [token value]

我尝试使用键传递它的内联标头:Bearer 和 Value= 令牌值,但它不起作用。 我试图传递下面的 XML:

%dw 2.0
output application/xml
 ---
headers : {
   Authorization: {
    "Bearer " ++ vars.licenseServerTocken
}
}

但出现以下错误:

"Error trying to acquire a new connection:Error fetching the resource [https://abc123.com/xyz/Contract.svc?wsdl]: Server returned HTTP response code: 500 for URL: https://abc123.com/xyz/Contract.svc?wsdl"

当我在正文中按以下方式传递时,它正在从 SOAP UI 工作

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tem.org/">
   <soapenv:Header>
   <Authorization>Bearer sada3123gjkada1231</Authorization>
   </soapenv:Header>
   <soapenv:Body>

请推荐

【问题讨论】:

    标签: soap mule


    【解决方案1】:

    授权标头不是 SOAP 请求的一部分,也不是 SOAP 标头。它是作为 SOAP 请求传输的 HTTP 请求的一部分。所以你需要在传输头部分定义。

    例子:

        <wsc:consume doc:name="Consume" config-ref="Web_Service_Consumer_Config" operation="MyService">
            <wsc:message >
                <wsc:body > ... </wsc:body>
            </wsc:message>
            <wsc:transport-headers >
                <wsc:transport-header key="Authorization" value="#['Bearer ' ++  vars.licenseServerTocken ]" />
            </wsc:transport-headers>
        </wsc:consume>
    

    【讨论】:

    • 感谢您的回答。赞成解释:)
    【解决方案2】:

    这是授权令牌。你这样通过它

    授权:不记名令牌

    标题中的键:值示例

    授权:承载 fc654rrhfdc643q6ecyi6uo6thvg

    【讨论】:

    • 嗨,Alex - 我应该从哪里经过?我尝试传入标头,但它会引发无效输入
    • 我添加了示例 - 您必须将授权的标头值传递为“Bearer 98687687687687697”,其中 98687687687687697 是您的令牌
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多