IBM Mobilefirst:使用基本身份验证从适配器调用服务的问题

时间:2016-11-03 11:56:08

标签: ibm-mobilefirst

我有一个从我的适配器调用的服务调用,并且该特定服务调用受Basic auth保护。所以我在适配器XML中添加以下代码,以帮助来自此适配器的所有服务调用进行基本身份验证验证。

<wl:adapter name="adapter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:wl="http://www.ibm.com/mfp/integration" xmlns:http="http://www.ibm.com/mfp/integration/http">

    <displayName>adapter</displayName>
    <description>adapter</description>
    <connectivity>
        <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
            <protocol>http</protocol>
            <domain>myweb.com</domain>
            <!-- <port>443</port> -->

            <connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
            <socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>

            <authentication>
                <basic />
                <serverIdentity>
                    <username>123-123-123-123</username>
                    <password>12334445!</password>
                </serverIdentity>

            </authentication>

            <maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
            <!-- Following properties used by adapter's key manager for choosing specific 
                certificate from key store <sslCertificateAlias></sslCertificateAlias> <sslCertificatePassword></sslCertificatePassword> -->
        </connectionPolicy>
    </connectivity>

    <procedure name="procedure1" securityTest="wl_unprotected"
        connectAs="server" />
    <procedure name="procedure2" securityTest="wl_unprotected"
        connectAs="server" />
</wl:adapter>

当我尝试使用上面的xml点击服务时,它给了我无效的授权。但是当我在js代码中手动将其添加到我的服务调用的标题中时,它将通过以下方式获得。

       headers: {Authorization: "Basic MTIzLTEyMy0xMjMtMTIzOjEyMzQ1NiE="}
某些人可以帮助我理解可能存在的问题。如果我在XML中保留特殊字符,是否会出现一些问题。我如何使其发挥作用。

三江源。

1 个答案:

答案 0 :(得分:1)

仅当目标服务首先返回401或403时,才会发送带有Authorization标头的适配器请求。如果您能够更改该服务的响应代码,这可能是您的解决方案。否则,继续像您一样添加Authorization标题,正如您所说的那样。