如何从 WSO2 ESB Synapse 处理程序中的 JSON REST 请求正文中提取数据

Howto extract data from the JSON body of REST request inside a WSO2 ESB Synapse handler

我正在为 WSO2 ESB 编写自定义处理程序,以根据输入请求内容构建身份验证凭据。现在我所拥有的是这样的:

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;
}

我找不到关于如何在 Synapse 处理程序中访问 REST JSON 请求主体的文档。有任何想法吗?可以在处理程序运行之前定义一个 属性 并用 String clientId = (String)context.getProperty("clientId")?

之类的东西捕获它

您可以尝试关注;

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