private static Object jsonNodeRide(Object body,ServerHttpRequest request){ String uri = request.getURI().toASCIIString().split("\\?")[0]; List<String> dtoFidle = includUrl(uri); //实体类中需要处理的字段名称 if(null == dtoFidle){ return body; } log.info("地址:{};body:{}",uri,JSONObject.toJSONString(body)); try{ ObjectMapper mapper = new ObjectMapper(); JsonNode jsonNode = mapper.readTree(JSONObject.toJSONString(body)); JsonNode rootNode = null; //mybatis-plus 分页 ipage 处理 if(isIpage(uri,Ipage)){ rootNode = jsonNode.get("data").path("records"); if(uri.contains("/sys-web/sys/user/new/listPage")){ rootNode = jsonNode.path("data"); } log.info("nameNode**********:{}",JSONObject.toJSONString(jsonNode.get("data"))); if(!ObjectUtils.isEmpty(rootNode)){ ArrayNode arrayNode = (ArrayNode) rootNode; for (int i = 0; i < arrayNode.size(); i++) { JsonNode element = arrayNode.get(i); for(String key:dtoFidle){ if (element.has(key)) { log.info("key**********:{},************{}",JSONObject.toJSONString(key),element.get(key)); // 重写jsonnode字段的值 ((ObjectNode) element).put(key, RSAUtils.encrypt(PUBLICKEY,String.valueOf(element.get(key)))); } } } String updatedJson = mapper.writeValueAsString(jsonNode); System.out.println("**********************:"+body.getClass().getSuperclass()+";;;;"+updatedJson); body = JSONObject.parseObject(updatedJson); System.out.println("************body**********:"+body); } return body; }else{ rootNode = jsonNode.get("data"); } log.info("rootNode**********:{}",jsonNode.get("data").asText());
// //DTO实体类 处理
if(isIpage(uri,DTO)){ nodeOverride(jsonNode.path("data"),dtoFidle); } //DTO实体类 内 中类处理 //custChangePersonUserDTO sysUserDTO 实体类中需要处理的字段名称 if(uri.contains("/cust-web/custCompany/detail") || uri.contains("/spyPc-web/custCompany/getByCompanyId")){ nodeOverride(rootNode.path("authUser"),custChangePersonUserDTO); nodeOverride(rootNode.path("legalPerson"),custChangePersonUserDTO); nodeOverride(rootNode.path("sysUser"),sysUserDTO); } String updatedJson = mapper.writeValueAsString(jsonNode); System.out.println(";;;;"+updatedJson); body = JSONObject.parseObject(updatedJson); return body; }catch (Exception e){ e.printStackTrace(); } return body; }
private static void nodeOverride(JsonNode element,List<String> dtoFidle){ System.out.println("nodeOverride*****************:"+element.asText()); for(String key:dtoFidle){ if (element.has(key)) { log.info("key**********:{},************{}",JSONObject.toJSONString(key),element.get(key)); // 重写jsonnode字段的值 ((ObjectNode) element).put(key, RSAUtils.encrypt(PUBLICKEY,String.valueOf(element.get(key)))); } } }
private statis List<String> URLS = new ArrayList<>; statis{ URLS.add("需要过滤的地址"); } private static List<String> includUrl(String uri){ for (String str: URLS.keySet()) { if (uri.contains(str)) { return URLS.get(str); } } return null; }