问题是我过滤成星号的文本内容,没生效。用户接受到的还是明文
@RequestMapping("/censor")
public Object censor(HttpServletRequest request) {
String postData = BodyParamsUtil.getPostData(request);
log.info("censor:{}", postData);
// {"messageId":485745265509138561,"sender":"1902717025395548161",
// "conv":{"type":0,"target":"1903332021271928834","line":20},
// "payload":{"type":1,"searchableContent":"111","pushContent":"","pushData":"","content":"","mediaType":0,"remoteMediaUrl":"","persistFlag":3,"expireDuration":0,"mentionedType":0,"mentionedTarget":[],"extra":"{\"vip\":0}"},
// "toUsers":[],"timestamp":1746357392016}
JSONObject jsonObject = JSONObject.parseObject(postData);
//取消息内容searchableContent
JSONObject payload = jsonObject.getJSONObject("payload");
if (payload!=null && StringUtil.isNotEmpty(payload.getString("searchableContent"))) {
String searchableContent = jsonObject.getJSONObject("payload").getString("searchableContent");
// 隐藏手机号
searchableContent = searchableContent.replaceAll("1[3-9]\\d{9}", "***********");
// 隐藏微信号
searchableContent = searchableContent.replaceAll("[a-zA-Z][-_0-9a-zA-Z]{5,19}", "********");
// 隐藏QQ号
searchableContent = searchableContent.replaceAll("[1-9][0-9]{4,}", "*****");
jsonObject.getJSONObject("payload").put("searchableContent", searchableContent);
}
log.info("return jsonObject = {}", jsonObject.toJSONString());
ResponseEntity.BodyBuilder ok = ResponseEntity.ok();
MessagePayload result = new MessagePayload();
try {
// result = MessagePayload.fromProtoMessageContent(MessagePayload.fromProtoMessageContent(jsonObject.toJavaObject(WFCMessage.MessageContent.class)).toProtoMessageContent());
result.setExtra(jsonObject.getJSONObject("payload").getString("extra"));
result.setSearchableContent(jsonObject.getJSONObject("payload").getString("searchableContent"));
result.setContent("");
result.setType(1);
result.setPushContent("");
result.setPushData("");
result.setPersistFlag(3);
result.setExpireDuration(0);
result.setMentionedType(0);
result.setMentionedTarget(new ArrayList<>());
result.setMediaType(0);
result.setRemoteMediaUrl("");
result.setBase64edData("");
} catch (Exception e) {
log.error("censor error", e);
}
log.info("censor result = {}", result);
log.info("json censor result = {}", JSONObject.toJSONString(result));
return ok.body(result);
}
以上是代码
这个是日志。
这个是接收到的消息