feat(common-sensitive): 新增URL参数脱敏功能及枚举类型(ai-dev)

1. 在DesensitizedUtils工具类中新增url()方法,实现URL参数脱敏功能
2. 在SensitiveTypeEnum枚举中新增QUERY_PARAM类型,关联新增的脱敏方法
3. 方法会将URL参数值统一替换为***以保护敏感信息
This commit is contained in:
冷冷 authored and PIG AI committed 2025-06-23 16:06:08 +08:00
1 parent dc37974c72
commit b3834e3215
2 files changed
+30 -1

No files matched your search

@@ -80,8 +80,12 @@ public enum SensitiveTypeEnum {
/**
* 中国大陆车牌,包含普通车辆、新能源车辆
*/
CAR_LICENSE((sensitive, input) -> DesensitizedUtil.carLicense(input));
CAR_LICENSE((sensitive, input) -> DesensitizedUtil.carLicense(input)),
/**
* 请求参数脱敏
*/
QUERY_PARAM((sensitive, input) -> DesensitizedUtils.url(input));
/**
* 获取脱敏策略
@@ -17,10 +17,15 @@
package com.pig4cloud.pigx.common.sensitive.util;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import java.nio.charset.StandardCharsets;
import java.util.Map;
/**
* 脱敏工具类
*
@@ -202,6 +207,26 @@ public class DesensitizedUtils {
return jsonObject.toStringPretty();
}
/**
* url 参数脱敏
*
* @param url url
* @return url?xxxx=***&xxxx=***
*/
public static String url(String url) {
UrlBuilder builder = UrlBuilder.of(url, StandardCharsets.UTF_8);
UrlQuery originalQuery = builder.getQuery();
UrlQuery maskedQuery = new UrlQuery();
// 遍历原始参数,构造新的脱敏参数
for (Map.Entry<CharSequence, CharSequence> entry : originalQuery.getQueryMap().entrySet()) {
maskedQuery.add(entry.getKey(), "***");
}
// 构造新的 URL
return builder.setQuery(maskedQuery).build();
}
public static String ipv4(String origin) {
return StrUtil.subBefore(origin, '.', true) + ".*";
}