http代理优化,解决多个主域名存在上下级关系时,域名映射不能正常使用的问题

This commit is contained in:
aoshiguchen
2024-11-22 22:22:39 +08:00
parent 00eb14c3be
commit ca2e7e5254
@@ -401,11 +401,12 @@ public class ProxyUtil {
* 通过完整域名获取域名id * 通过完整域名获取域名id
*/ */
public static Integer getDomainNameIdByFullDomain(String fullDomain) { public static Integer getDomainNameIdByFullDomain(String fullDomain) {
List<String> domains = domainToDomainNameIdMap.keySet().stream().filter(item -> fullDomain.endsWith(item)).collect(Collectors.toList()); List<String> domains = domainToDomainNameIdMap.keySet().stream().sorted((a,b) -> b.length() - a.length()).filter(item -> fullDomain.endsWith(item)).collect(Collectors.toList());
// 不存在 或者 有多条记录,返回null // 不存在,返回null
if (CollectionUtil.isEmpty(domains) || domains.size() > 1) { if (CollectionUtil.isEmpty(domains)) {
return null; return null;
} }
// 优先匹配最长的域名,默认取第一个,后续思考如何优化
return getDomainNameIdByDomain(domains.get(0)); return getDomainNameIdByDomain(domains.get(0));
} }