2014-02-11 173 views
0

我正在關注本教程http://wso2.com/library/articles/2010/10/using-xacml-fine-grained-authorization-wso2-platform/以保護多個Web服務使用wso2 ESB + IS。 我只想要一個調用Entitlement Mediator的代理來檢查用戶是否具有訪問端點的權限,但是我有不同類型的端點,並且我在使用本教程中提供的java客戶端時遇到了一些問題。 我可以調用soap web服務,但它不適用於具有不同http方法(get,post)和不同內容類型(application/json)的其他web服務。WSO2 ESB XACML授權休息/ soap web服務客戶端java

有一種通用解決方案來調用具有ESB所需屬性的通用端點?

感謝

回答

0

讓我簡單解釋一下什麼權利中介呢,它從請求消息中提取一些值,並創建XACML請求並將其發送到WSO2IS決定。

要創建XACML請求,授權介查找以下

用戶 - >通過默認用戶名是從所謂的「用戶名」的消息上下文屬性值檢索。當用戶使用UT/Basic身份驗證進行代理服務驗證時,此值將填充到消息上下文....

資源 - >默認情況下資源是端點服務名稱。這是從SOAP消息的「To」頭中檢索的。

Action - >默認情況下動作是「read」如果這是REST請求,它將採用GET/POST作爲動作。

相同使用情況REST服務已被描述here

但是你可以通過實現新的回撥類更改默認行爲。以上值是從回調類的默認實現中檢索的。如果你想從用戶json請求中檢索一些用戶名,你甚至可以通過擴展新的實現來完成。基本上你想編寫一些java代碼並創建一個jar文件並將其放入repository/components/lib目錄中...請找到here的默認實現,即「UTEntitlementCallbackHandler.java」。還有一些其他的實現,請查看代碼,它很簡單,你可以理解它們。