0

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

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

肥皂适配器.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);
}
4

1 回答 1

1

你没有说你使用的是哪个版本的 MobileFirst Platform,所以我假设是 7.0。

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

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

有关详细信息,请参阅知识中心的此处

不要忘记确保您的适配器本身已得到充分保护。否则,您可能会以不安全的方式暴露安全服务。

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

于 2015-04-17T07:16:52.490 回答