繁体   English   中英

如何在WSO2 API管理器中公开带有身份验证的SOAP Web服务

[英]How to expose a SOAP web service with authentication in WSO2 API Manager

我有一个SOAP Web服务,可以使用以下命令进行API调用。 工作正常。

curl --user test:test123 --header "Content-Type: text/xml;charset=UTF-8" --data @checkPayment.xml http://192.168.100.10:8081/asywspay/WSDeclarationPayment

上面提到的SOAP服务是通过WSO2 API Manager 1.6公开的,端点是http://api.store.com:8280/WSDeclarationPayment/1.0. 然后,我使用以下命令进行API调用。

curl --user test:test123 --header "Content-Type: text/xml;charset=UTF-8" --header "Authorization: Bearer 7bcc2235a6b0bebfbf4ff684f59f97a7" --data @checkPayment.xml http://api.store.com:8280/WSDeclarationPayment/1.0

它给我错误This request requires HTTP authentication 即使我通过curl使用--user test:test123通过了凭据,也没有通过API管理器。

鉴于这种尝试也是如此。

curl --header "Content-Type: text/xml;charset=UTF-8" --header "Authorization: Bearer 7bcc2235a6b0bebfbf4ff684f59f97a7" --header "Authorization: Basic dGVzdDp0ZXN0MTIz" --data @checkPayment.xml http://api.store.com:8280/WSDeclarationPayment/1.0

然后我得到错误<faultcode>S:Client</faultcode><faultstring>Cannot find dispatch method for {

我怎样才能解决这个问题?

您有一个安全的后端SOAP服务,该服务需要通过API Manager公开。 创建API时,在Endpoints部分下,必须单击Show More Options ,然后在其中选择Secured as Endpoint Security Scheme ,然后可以在此处提供后端服务凭据,如下图所示。 当API Manager调用您的后端服务时,将使用这些凭据。 现在,我们已经配置了API管理器以与受保护的后端进行通信。

在此处输入图片说明

然后,您必须在API商店中创建一个应用程序,将该应用程序订阅API,生成访问令牌,最后在调用API时必须使用这些访问令牌。 整个流程在此处[a]有详细记录。 请通过它。 如果要在没有访问令牌的情况下调用API,则可以在创建API时将API资源的“身份Auth Type设置为“ None ”。

[a] https://docs.wso2acom/display/AM160/Application+Developer+Guide

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM