在 WSO2 APIM 3.2.0 中添加全局调解扩展

Adding Global Mediation extension in WSO2 APIM 3.2.0

我已经按照文档配置了全局中介扩展。文件 global_ext.xml 放在 wso2am-3.2.0\repository\deployment\server\synapse-configs\default\sequences.

<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--In">
    <property name="token" expression="get-property('transport', 'Authorization')"/>
</sequence>
    public boolean handleRequest(MessageContext messageContext) {
        String accessToken = (String) messageContext.getProperty("token");

但是,令牌 属性 在 MessageContext 属性中不可用。知道这里出了什么问题吗?或者如何获取handler中token的值?

如果 handleRequest(MessageContext messageContext) 方法是一些扩展 AbstractHandler (Writing Custom handlers) 的 CustomHandler class,那么它不会像您预期的那样工作。 这是因为 处理程序在序列 之前 运行。 WSO2 文档中描述了消息流:Message flow in the API Manager Gateway 看起来像这样:

所以你可以在handler中设置一些属性然后顺序读取,其他方式不行