如何在 WSO2 API 管理器中公开带有身份验证的 SOAP Web 服务
How to expose a SOAP web service with authentication in WSO2 API Manager
我有一个 SOAP 网络服务,我可以使用以下命令进行 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 管理器公开。当你创建一个 API 时,在 Endpoints 部分下,你必须点击 Show More Options
,在那里你必须 select Secured
as Endpoint Security Scheme
,然后你可以给那里的后端服务凭证,如下图所示。当 API 管理器调用您的后端服务时,将使用这些凭据。现在我们已经将 API 管理器配置为与安全后端通信。
然后您必须在 API 商店中创建一个应用程序,将该应用程序订阅到 API,生成访问令牌,最后您必须在调用 API。整个流程在此处 [a] 有详细记录。请通过它。如果您想在没有访问令牌的情况下调用 API,您可以在创建 API 时将 API 资源的 Auth Type
设置为 None
。
[一个]https://docs.wso2acom/display/AM160/Application+Developer+Guide
我有一个 SOAP 网络服务,我可以使用以下命令进行 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 管理器公开。当你创建一个 API 时,在 Endpoints 部分下,你必须点击 Show More Options
,在那里你必须 select Secured
as Endpoint Security Scheme
,然后你可以给那里的后端服务凭证,如下图所示。当 API 管理器调用您的后端服务时,将使用这些凭据。现在我们已经将 API 管理器配置为与安全后端通信。
然后您必须在 API 商店中创建一个应用程序,将该应用程序订阅到 API,生成访问令牌,最后您必须在调用 API。整个流程在此处 [a] 有详细记录。请通过它。如果您想在没有访问令牌的情况下调用 API,您可以在创建 API 时将 API 资源的 Auth Type
设置为 None
。
[一个]https://docs.wso2acom/display/AM160/Application+Developer+Guide