簡體   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