Browse Source

更新iP白名单拦截规则

wuweihao 3 years ago
parent
commit
cd344ca314

+ 2 - 1
README.md

@@ -7,4 +7,5 @@
     2022-3-26 已部署项目sit 8.135.106.227 gov_zhuhai_isolation_8014
     
     对外域名:8.135.106.227:8014 ->  sit-isolation.4dage.com  香洲区隔离酒店
-    https://sit-isolation.4dage.com/doc.html#/home
+    doc: https://sit-isolation.4dage.com/doc.html#/home
+    web: https://sit-isolation.4dage.com/backstage/index.html#/login

+ 2 - 2
gis_common/src/main/java/com/gis/common/base/mapper/SysIpMapper.java

@@ -14,8 +14,8 @@ import java.util.List;
 @Mapper
 public interface SysIpMapper extends BaseMapper<SysIpEntity> {
 
-    @Select("select ip from sys_ip where is_delete=0 and project_id=#{projectId}")
-    List<String> findByProjectId(String projectId);
+    @Select("select ip from sys_ip where is_delete=0 and identifier=#{appId}")
+    List<String> findByType(String appId);
 
     @Select("select id from sys_project where is_delete=0 and id=#{projectId}")
     Integer existProjectById(String projectId);

+ 4 - 2
gis_common/src/main/java/com/gis/common/base/service/SysIpService.java

@@ -16,7 +16,7 @@ public interface SysIpService extends IService<SysIpEntity> {
 
 
 
-    List<String> findByProjectId(String projectId);
+//    List<String> findByProjectId(String projectId);
 
     Result getList(PageDto param);
 
@@ -24,5 +24,7 @@ public interface SysIpService extends IService<SysIpEntity> {
 
     Result saveEntity(IpDto param);
 
-    SysIpEntity findByIdentifier(String appId);
+//    SysIpEntity findByIdentifier(String appId);
+
+    List<String> findByType(String appId);
 }

+ 8 - 8
gis_common/src/main/java/com/gis/common/base/service/impl/SysIpServiceImpl.java

@@ -41,8 +41,8 @@ public class SysIpServiceImpl extends ServiceImpl<SysIpMapper, SysIpEntity> impl
 
 
     @Override
-    public List<String> findByProjectId(String projectId) {
-        return baseMapper.findByProjectId(projectId);
+    public List<String> findByType(String appId) {
+        return baseMapper.findByType(appId);
     }
 
     @Override
@@ -85,12 +85,12 @@ public class SysIpServiceImpl extends ServiceImpl<SysIpMapper, SysIpEntity> impl
         return Result.success(entity);
     }
 
-    @Override
-    public SysIpEntity findByIdentifier(String appId) {
-        LambdaQueryWrapper<SysIpEntity> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(SysIpEntity::getIdentifier, appId);
-        return this.getOne(wrapper, true);
-    }
+//    @Override
+//    public SysIpEntity findByIdentifier(String appId) {
+//        LambdaQueryWrapper<SysIpEntity> wrapper = new LambdaQueryWrapper<>();
+//        wrapper.eq(SysIpEntity::getIdentifier, appId);
+//        return this.getOne(wrapper, true);
+//    }
 
 
     public SysIpEntity findByIdentifierAndIp(String identifier, String ip) {

+ 10 - 10
gis_common/src/main/java/com/gis/common/filter/ApiInterceptor.java

@@ -73,21 +73,21 @@ public class ApiInterceptor implements HandlerInterceptor {
         String ip = EncryptUtils.getIp(appId);
 
         // 校验appId登记id是否跟请求ip类型一致
-        SysIpEntity entity = ipService.findByIdentifier(appId);
-        if (!entity.getIp().equals(ip)){
-            String errorMsg = StrUtil.format("此ip: {} 没有登记, 拒绝访问", remoteAddr);
-            log.error(errorMsg);
-            BaseRuntimeException.getExc(null, errorMsg);
-            return false;
-        }
-//        List<String> ips= ipService.findByProjectId(projectId);
-//        if (!ips.contains(remoteAddr)) {
+//        SysIpEntity entity = ipService.findByIdentifier(appId);
+//        if (!entity.getIp().equals(ip)){
 //            String errorMsg = StrUtil.format("此ip: {} 没有登记, 拒绝访问", remoteAddr);
 //            log.error(errorMsg);
 //            BaseRuntimeException.getExc(null, errorMsg);
 //            return false;
 //        }
-        redisUtil.setEx(appKey, appId, 3, TimeUnit.SECONDS);
+        List<String> ips= ipService.findByType(appId);
+        if (!ips.contains(remoteAddr)) {
+            String errorMsg = StrUtil.format("此ip: {} 没有登记, 拒绝访问", remoteAddr);
+            log.error(errorMsg);
+            BaseRuntimeException.getExc(null, errorMsg);
+            return false;
+        }
+        redisUtil.setEx(appKey, appId, 5, TimeUnit.SECONDS);
 
         return true;
     }