2016-02-25 28 views
1

我正在爲WSO2 ESB編寫自定義處理程序,以基於輸入請求內容構建身份驗證憑據。現在我所擁有的是這樣的:如何從WSO2 ESB Synapse處理程序中的REST請求的JSON正文中提取數據

public boolean handleRequest(MessageContext context) { 
    // TODO: extract relevant information (clientId) from JSON request body 
    String clientId; 

    Map<String, String> headers = (Map<String, String>) ((Axis2MessageContext) context).getAxis2MessageContext().getProperty(
      org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS); 

    setAuthorization(headers, clientId); 

    return true; 
} 

我無法找到有關如何訪問REST JSON請求主體在Synapse處理程序內的文檔。有任何想法嗎?可以在處理程序運行之前定義一個屬性,並使用類似String clientId = (String)context.getProperty("clientId")的東西來捕獲它?

+0

你能分享一個完整的項目:API或ESB代理,處理器項目進行身份驗證,一些測試運行。 –

+0

我會親自送你。 – yeiniel

回答

2

您可以試試以下;

// Getting the json payload to string 
String jsonPayloadToString = JsonUtil.jsonPayloadToString(((Axis2MessageContext) context).getAxis2MessageContext()); 
// Make a json object 
JSONObject jsonBody = new JSONObject(jsonPayloadToString); 
相關問題