【问题标题】:Salseforce Apex classes support Apache axis Stub authenticationSalesforce Apex 类支持 Apache 轴存根身份验证
【发布时间】:2011-09-22 14:30:42
【问题描述】:

我们已将 Web 服务的 WSDL 文件转换为 salesforce apex 类。 Web 服务正在接收 Apache 轴存根身份验证用户名和密码格式的身份验证凭据。

以下是示例 Apache 轴 Stub 身份验证用户名和密码代码。

Service service = new  XYZServiceLocator();
URL endpointURL = new URL("https://urllink");
XYZServiceSoapBindingStub stub = new XYZServiceSoapBindingStub(endpointURL, service);
stub.setUsername("username");// void org.apache.axis.client.Stub.setUsername(String username)
stub.setPassword("password");// void org.apache.axis.client.Stub.setPassword(String Password)
QueryResponse qresp = stub.webServiceCall(qr);

我的问题是。我们能否在 salesforce Apex 类中获得 Apache 轴 Stub 身份验证用户名和密码功能。

由于 Apex Stub 支持 HTTP 标头身份验证,它是否也支持 Apache 轴 Stub 身份验证?

以下是 Salesforce Apex 存根 HTTP 标头身份验证代码

String myData = 'username:password';
Blob hash = Crypto.generateDigest('SHA1',Blob.valueOf(myData));
encodedusernameandpassword = EncodingUtil.base64Encode(hash);
XYZBillingStub.inputHttpHeaders_x.put('Authorization','Basic ' + encodedusernameandpassword );// SALESFORCE STUB
XYZBilling.query(queryReq )// Web Service call

请帮我解决这个问题。

【问题讨论】:

    标签: web-services salesforce apex-code axis


    【解决方案1】:

    将顶点代码转换为以下代码后,我成功地解决了问题。

    String myData = 'username:password';
    encodedusernameandpassword = EncodingUtil.base64Encode(Blob.valueOf(myData));
    XYZBillingStub.inputHttpHeaders_x.put('Authorization','Basic ' + encodedusernameandpassword );// SALESFORCE STUB
    XYZBilling.query(queryReq )// Web Service call
    

    这是我得到的一个简单的试用解决方案,而且我认为 Salseforce 顶点功能仅支持输入 HTTP 标头身份验证过程。如果有人有其他方式进行身份验证,请提及。

    【讨论】:

      【解决方案2】:

      看来您已经找到了解决方案。

      作为参考,请查看在线文档的 Sending HTTP Headers on a Web Service Callout 部分以了解基本身份验证标头。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-29
        • 2012-09-29
        • 1970-01-01
        • 2017-01-30
        • 2021-12-13
        • 2022-10-13
        • 1970-01-01
        • 2015-08-31
        相关资源
        最近更新 更多