1
0
mirror of synced 2026-10-15 11:58:09 +08:00

🎨 #4078 【小程序】获取手机号的方法支持openid校验

This commit is contained in:
Binary Wang
2026-07-31 00:17:22 +08:00
committed by GitHub
parent 8c5d917db9
commit bdf947e2ca
6 changed files with 87 additions and 3 deletions

View File

@@ -17,8 +17,10 @@ public class DataUtils {
*/
public static <E> E handleDataWithSecret(E data) {
E dataForLog = data;
if (data instanceof String && StringUtils.contains((String) data, "secret=")) {
dataForLog = (E) RegExUtils.replaceAll((String) data, "(^|[?&])secret=[^&]*", "$1secret=******");
if (data instanceof String) {
String stringData = (String) data;
stringData = RegExUtils.replaceAll(stringData, "(^|[?&])secret=[^&]*", "$1secret=******");
dataForLog = (E) RegExUtils.replaceAll(stringData, "(\\\"openid\\\"\\s*:\\s*\\\")[^\\\"]*(\\\")", "$1******$2");
}
return dataForLog;
}

View File

@@ -47,4 +47,14 @@ public class DataUtilsTest {
assertFalse(s.contains("%2F"), "Encoded characters in the secret must be masked too");
assertTrue(s.contains("&secret=******&"), "Secret should be replaced with asterisks");
}
@Test
public void testHandleDataWithOpenidInJson() {
String data = "{\"code\":\"phone-code\",\"openid\":\"user-openid\"}";
String result = DataUtils.handleDataWithSecret(data);
assertFalse(result.contains("user-openid"));
assertTrue(result.contains("\"openid\":\"******\""));
}
}