From b30100aa09b5c83a7bc66a18dd7fc7b8477c3838 Mon Sep 17 00:00:00 2001 From: xyli Date: Fri, 3 Mar 2023 17:24:25 +0800 Subject: [PATCH] =?UTF-8?q?IpInterceptor.java=20=E6=96=B0=E5=A2=9Eip?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/interceptor/IpInterceptor.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/mpms/common/interceptor/IpInterceptor.java b/src/main/java/mpms/common/interceptor/IpInterceptor.java index 4ee91b9..d995e9e 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; + } -- Gitee