我有一个从我的适配器调用的服务调用,并且该特定服务调用受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中保留特殊字符,是否会出现一些问题。我如何使其发挥作用。
三江源。
答案 0 :(得分:1)
仅当目标服务首先返回401或403时,才会发送带有Authorization
标头的适配器请求。如果您能够更改该服务的响应代码,这可能是您的解决方案。否则,继续像您一样添加Authorization
标题,正如您所说的那样。