gateway 网关过滤器之修改body内容

自从项目使用gateway网关,就与bug纠缠不休息····

先来看看,需求:  网关验证授权,限流,接口数据解密,返回加密等~~~

如果是修改header还好修改,但是修改body里面的内容就麻烦了,查找了全网,没有一个真正解决问题的,都是围绕着怎么DataBuffer与String 的转换,最终没有解决 body长度/缺失问题。

其实gateway官网提供了修改body的过滤器工厂,ModifyRequestBodyGatewayFilterFactory


官方文档;https://cloud.spring.io/spring-cloud-gateway/reference/html/


贴上这个接口源码:


这里源码可以看出:modityRequstBody的方法参数的含义,第一个是入参,第二个是出参(包裹修改后的数据),第三是过滤类型(一般是json即 MediaType.APPLICATION_JSON_UTF8_VALUE)第四个是 修改body 的接口方法(一般默认就行,即匿名实现)



我们可以在构造方法里面做解密,或其他修改即可,然后赋值到message

例如:Helleo(String,message){      this.message =   decode(message)}


我的代码:

路由拦截修改:

我这里是String,String  类型全局解密加密过滤,当然其他路由不一定是String 出参,你想怎么写都行。


这里实现了RewriteFunction接口,进行body解密和加密。(只是给出demo,线上的不是这也简单的)

再贴一个简单的:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容