我正在为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")
?
答案 0 :(得分:2)
您可以尝试以下内容;
// Getting the json payload to string
String jsonPayloadToString = JsonUtil.jsonPayloadToString(((Axis2MessageContext) context).getAxis2MessageContext());
// Make a json object
JSONObject jsonBody = new JSONObject(jsonPayloadToString);