我正在尝试使用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);
}
答案 0 :(得分:1)
你不会说你正在使用哪个版本的MobileFirst Platform,所以我假设7.0。
假设您的意思是HTTP基本身份验证,它看起来像您所做的,并且每次调用后端服务的值都相同,通常您希望修改适配器的<authentication>
元素。 .xml
文件,如下所示:
<authentication>
<basic/>
<serverIdentity>
<username>${user}</username>
<password>${password}</password>
</serverIdentity>
</authentication>
有关详情,请参阅知识中心的here。
不要忘记确保适配器本身具有足够的安全性。否则,您可能会以不安全的方式暴露安全服务。
此外,我假设您的后端服务已通过HTTPS连接,以确保凭据受到保护。