当前位置: 首页 > 文档资料 > SOP 中文文档 >

动态修改请求参数

优质
小牛编辑
134浏览
2023-12-01

自1.14.0开始,zuul网关支持动态修改请求参数。即在网关修改客户端传递过来的参数,然后发送到微服务端。

客户端参数{"name": "jim"} --> zuul中修改为{"name": "Lucy"} --> 微服务端将收到{"name": "Lucy"}

使用场景:客户端请求参数经过加密,在网关解密后,再次发送明文参数给微服务端

  • 如何使用

在网关springboot启动函数中添加如下代码

public static void main(String[] args) {
    ApiConfig.getInstance().setParameterFormatter(requestParams -> {
        // 获取biz_content
        JSONObject jsonObject = requestParams.getJSONObject(ParamNames.BIZ_CONTENT_NAME);
        // 修改biz_content中的值
        jsonObject.put("name", "name修改了111");
        jsonObject.put("remark", "remark修改了222");
        // 重新设置biz_content
        requestParams.put(ParamNames.BIZ_CONTENT_NAME, jsonObject);
    });
    SpringApplication.run(SopGatewayApplication.class, args);
}

其中requestParams是客户端传递过来的参数,可在此基础上添加修改参数。

更多参考:com.gitee.sop.gatewaycommon.zuul.filter.PreParameterFormatterFilter.java