业务场景:页面传递的参数token是随机码,后台接收后需要进一步转换,但每一个接口都去添加转换步骤很不爽。
解决:由于所有请求都会先经过zuul过滤,所以将这个步骤放在这是最合适不过的了。
代码:
//1、这个是原来的参数数据
String accessToken = request.getParameter("accessToken");
//2、转换后的数据
String id = redis.get(accessToken);
//3、将转换后的数据放入请求参数中
request.getParameterMap();
Map<String, List<String>> requestQueryParams = ctx.getRequestQueryParams();
if (requestQueryParams==null) requestQueryParams=new HashMap<>();
//4、将要新增的参数添加进去,被调用的微服务可以直接 去取,就想普通的一样,框架会直接注入进去
ArrayList<String> paramsList = new ArrayList<>();
paramsList.add(id);
requestQueryParams.put("accessToken", paramsList);
ctx.setRequestQueryParams(requestQueryParams);