diff --git a/src/main/java/mpms/common/interceptor/IpInterceptor.java b/src/main/java/mpms/common/interceptor/IpInterceptor.java index 4ee91b912d703e0dce329f764916e9131baf69d5..d995e9ede1769b348b69184fd16bd519dcdf5e2f 100644 --- a/src/main/java/mpms/common/interceptor/IpInterceptor.java +++ b/src/main/java/mpms/common/interceptor/IpInterceptor.java @@ -24,7 +24,30 @@ import javax.servlet.http.HttpServletResponse; @InterceptorPattens(sort = -2, exclude = ServerOpenApi.API + "**") public class IpInterceptor extends BaseLinxInterceptor { - + @Override + protected boolean preHandle(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod) throws Exception { + String clientIp = ServletUtil.getClientIP(request); + if (StrUtil.equals(NetUtil.LOCAL_IP, clientIp)) { + return true; + } + SystemIpConfigService bean = SpringUtil.getBean(SystemIpConfigService.class); + SystemIpConfigModel config = bean.getConfig(); + if (config == null) { + return true; + } + // 判断不允许访问 + String prohibited = config.getProhibited(); + if (StrUtil.isNotEmpty(prohibited) && this.checkIp(prohibited, clientIp, false)) { + ServletUtil.write(response, JsonMessage.getString(900, "Prohibition of access"), MediaType.APPLICATION_JSON_VALUE); + return false; + } + String allowed = config.getAllowed(); + if (StrUtil.isEmpty(allowed) || this.checkIp(allowed, clientIp, true)) { + return true; + } + ServletUtil.write(response, JsonMessage.getString(900, "Prohibition of access"), MediaType.APPLICATION_JSON_VALUE); + return false; + }