IBM MobileFirst - 如何在HTTP适配器中使用SOAP设置基本授权?

时间:2015-04-16 09:03:47

标签: soap ibm-mobilefirst mobilefirst-adapters

我正在尝试使用SOAP创建一个http适配器来获取我的用户信息,我不知道如何使用soapUI工具设置我的基本授权。

如果不添加基本授权(用户名+密码),我将无法访问此Web服务。我该怎么办?

SoapAdapter.xml

<displayName>SoapAdapter</displayName>
<description>SoapAdapter</description>
<connectivity>
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
        <protocol>https</protocol>
        <domain>www-304.ibm.com</domain>
        <port>443</port>    
        <connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
        <socketTimeoutInMilliseconds>300000</socketTimeoutInMilliseconds>
        <maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
        <!-- Following properties used by adapter's key manager for choosing specific certificate from key store  
        <sslCertificateAlias></sslCertificateAlias> 
        <sslCertificatePassword></sslCertificatePassword>
        -->     
    </connectionPolicy>
</connectivity>

SoapAdapter-impl.js

function getUserPro() {

    var request = 
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://www.ibm.com/tools/wse/ws/">
            <soapenv:Header/>
            <soapenv:Body>
                <ws:ws_getUserCustomerOperation>
                    <ws:RequestedUserDetails>
                        <userid>my-email-address</userid>
                        <group>Customer</group>
                    </ws:RequestedUserDetails>
                </ws:ws_getUserCustomerOperation>
            </soapenv:Body>
        </soapenv:Envelope>;

    var input = {
            method : 'post',
            returnedContentType : 'xml',
            headers:{'Content-Type':'text/xml','Authorization':'Basic ' + ('my-email-address:*******')},        
            path : '/easytools/runtime/uat/protect/***/Customer/webservices/ws_addProductToCartCustomer.wss?',
            body: {
                content : request.toString(),
                contentType : 'text/xml; charset=utf-8'
            }
        };

    return WL.Server.invokeHttp(input);
}

1 个答案:

答案 0 :(得分:1)

你不会说你正在使用哪个版本的MobileFirst Platform,所以我假设7.0。

假设您的意思是HTTP基本身份验证,它看起来像您所做的,并且每次调用后端服务的值都相同,通常您希望修改适配器的<authentication>元素。 .xml文件,如下所示:

<authentication>
  <basic/>
  <serverIdentity>
    <username>${user}</username>
    <password>${password}</password>
  </serverIdentity>
</authentication>

有关详情,请参阅知识中心的here

不要忘记确保适配器本身具有足够的安全性。否则,您可能会以不安全的方式暴露安全服务。

此外,我假设您的后端服务已通过HTTPS连接,以确保凭据受到保护。