From f4f167bcfaeb91fa775f227a82553dcf40523b0d Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 7 Nov 2024 09:59:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=86=85=E7=BD=91ip=E5=88=A4?= =?UTF-8?q?=E6=96=AD=EF=BC=8C=E5=86=85=E7=BD=91=E8=BF=94=E5=9B=9E=E6=89=80?= =?UTF-8?q?=E5=B1=9E=E5=9C=B0=E4=B8=BA"=E6=9C=AA=E7=9F=A5"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ip/core/service/imp/IPQueryServiceImpl.java | 5 +++++ .../module/system/convert/auth/AuthConvert.java | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/cf-framework/cf-spring-boot-starter-biz-ip/src/main/java/com/cf/imes/framework/ip/core/service/imp/IPQueryServiceImpl.java b/cf-framework/cf-spring-boot-starter-biz-ip/src/main/java/com/cf/imes/framework/ip/core/service/imp/IPQueryServiceImpl.java index 91797abb1..37d1971d1 100644 --- a/cf-framework/cf-spring-boot-starter-biz-ip/src/main/java/com/cf/imes/framework/ip/core/service/imp/IPQueryServiceImpl.java +++ b/cf-framework/cf-spring-boot-starter-biz-ip/src/main/java/com/cf/imes/framework/ip/core/service/imp/IPQueryServiceImpl.java @@ -1,5 +1,6 @@ package com.cf.imes.framework.ip.core.service.imp; +import cn.hutool.core.net.NetUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; @@ -35,6 +36,10 @@ public class IPQueryServiceImpl implements IPQueryService { @Override public IPQueryDataRespDTO querySource(String ip) { + // 校验是否内部ip + if (NetUtil.isInnerIP(ip)) { + return new IPQueryDataRespDTO().setIp(ip).setProv("未知"); + } ErrorCode queryError = ErrorCodeConstants.IP_QUERY_ERROR; try { String apiUrl = ipQueryProperties.getApiUrl(); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/convert/auth/AuthConvert.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/convert/auth/AuthConvert.java index 0b773ca76..43d91c398 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/convert/auth/AuthConvert.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/convert/auth/AuthConvert.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.convert.auth; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.ObjectUtil; import com.cf.imes.framework.ip.core.service.dto.IPQueryDataRespDTO; import com.cf.imes.module.system.api.sms.dto.code.SmsCodeSendReqDTO; @@ -36,11 +37,21 @@ public interface AuthConvert { default AuthPermissionInfoRespVO convert(AdminUserDO user, OrganizationDO organizationDO, IPQueryDataRespDTO ipQueryDataRespDTO, List roleList, List menuList) { boolean ipQuerySuccess = ObjectUtil.isNotNull(ipQueryDataRespDTO); + String region = null; + if (ipQuerySuccess) { + String prov = ipQueryDataRespDTO.getProv(); + if (CharSequenceUtil.contains(prov, "未知")) { + region = prov; + } else { + region = StringUtils.join(List.of(prov, ipQueryDataRespDTO.getCity(), ipQueryDataRespDTO.getArea()), "/"); + } + } + return AuthPermissionInfoRespVO.builder() .user(AuthPermissionInfoRespVO.UserVO.builder() .id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).organId(user.getOrganId()).needSetPwd(StringUtils.isEmpty(user.getPassword())) .expireTime(organizationDO.getExpireTime()).ip(ipQuerySuccess ? ipQueryDataRespDTO.getIp() : "") - .region(ipQuerySuccess ? ipQueryDataRespDTO.getProv() + "/" + ipQueryDataRespDTO.getCity() + "/" + ipQueryDataRespDTO.getArea() : "") + .region(region) .build()) .roles(convertSet(roleList, RoleDO::getCode)) // 权限标识信息