有什么办法能够对json格式的 POST请求中的参数进行修改?

windforce89 2019-04-30 11:28:50
背景是这样的:

目前有个业务上的需求,想要对传入的基参中的某个参数赋值增强(而且确定是要后端来做)

我想到的大致思路是通过aop来做。 现在公司也有一个CloneRequestWrapper工具类能够实现流的复制,能够从中取出json字符串,自己进行如校验token这样的业务处理。 但是想要写入改怎么操作呢? 在网上搜了很多博客文章,基本上都是说的get方法,post的能做么?
...全文
1188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LighBlade 2019-05-03
  • 打赏
  • 举报
回复
try this: import org.springframework.stereotype.Component; import org.springframework.util.LinkedCaseInsensitiveMap; import org.springframework.web.filter.OncePerRequestFilter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; import java.util.Locale; import java.util.Map; import java.util.Set; //@Component public class EditUserInfoFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { // *****edit request } finally { filterChain.doFilter(request, response); } } }
weixin_41869351 2019-05-03
  • 打赏
  • 举报
回复
try this: import org.springframework.stereotype.Component; import org.springframework.util.LinkedCaseInsensitiveMap; import org.springframework.web.filter.OncePerRequestFilter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; import java.util.Locale; import java.util.Map; import java.util.Set; //@Component public class EditUserInfoFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { // *****edit request } finally { filterChain.doFilter(request, response); } } }
windforce89 2019-04-30
  • 打赏
  • 举报
回复
谢了老哥们,我再把情况叙述一下问题背景情况吧:

我们业务后台的接口都有一些“基参”,比如操作者userid 类型type, 用户token之类的,前端每个调请求都会传。

由于业务上一些奇葩的问题,前端各个调用方也不能都发版,我们想要对这些基参中一个字段根据类型进行不同的改变,(举个例子,比如type为1的该字段值后面加三个8,type为2的该字段值后面加3个0 。。。 例子不一定合乎常理,反正意思是一样的)

我们之前是用AOP, 从请求流中解析出json串,取出相应参数校验token,这个是没问题的。 但是现在等于说是想要在这个基础上往流里面改东西再传到controller 去,有什么办法啊
tianfang 2019-04-30
  • 打赏
  • 举报
回复
先学会post 中json参数的处理, 处理参数后,再调用原服务就是了
maradona1984 2019-04-30
  • 打赏
  • 举报
回复
修改request里的值?想不出来有什么意义,难道你们业务代码里会从request里拿参数?
如果是json,那就修改反序列化类里的setter方法,做增强,如果从request里取值,建议换成ThreadLocal

m0_37110275 2019-04-30
  • 打赏
  • 举报
回复
get和post又没有本质区别,虽然没看太懂,但是道理应该是一样的啊

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧